1   package wbKerho;
2   
3   import javax.swing.JPanel;
4   import javax.swing.JLabel;
5   import javax.swing.JTextField;
6   import javax.swing.BoxLayout;
7   import java.awt.Component;
8   import java.awt.Dimension;
9   import java.awt.event.KeyListener;
10  import javax.swing.SwingConstants;
11  
12  /**
13   * Luokka otsikon ja edit-kentän yhdistämiseksi 
14   * @author vesal
15   * @version 4.1.2010
16   */
17  public class EditPanel extends JPanel {
18  
19      private static final long serialVersionUID = 1L;
20      private final JLabel      label            = new JLabel("nimi");
21      private final JTextField  edit             = new JTextField();
22      private final JLabel      fill1            = new JLabel(" ");
23      private final JLabel      fill2            = new JLabel(" ");
24  
25  
26      /**
27       * Luodaan paneeli, siihen label ja edit-kentät ja muutama täytekenttä.
28       */
29      public EditPanel() {
30          label.setHorizontalAlignment(SwingConstants.TRAILING);
31          label.setPreferredSize(new Dimension(100, 14));
32          label.setAlignmentX(Component.RIGHT_ALIGNMENT);
33          label.setLabelFor(edit);
34  
35          edit.setColumns(10);
36          setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
37  
38          add(label);
39          add(fill1);
40          add(edit);
41          add(fill2);
42  
43      }
44  
45  
46      /**
47       * @return edit-kentässä oleva teksti
48       */
49      public String getText() {
50          return edit.getText();
51      }
52  
53  
54      /**
55       * Asetetaan edit-kenttään teksti
56       * @param t asetettava teksti.
57       */
58      public void setText(String t) {
59          edit.setText(t);
60      }
61  
62  
63      /**
64       * @return labelissa oleva teksti
65       */
66      public String getCaption() {
67          return label.getText();
68      }
69  
70  
71      /**
72       * Asetetaan labeliin teksti
73       * @param caption asetettava teksti
74       */
75      public void setCaption(String caption) {
76          label.setText(caption);
77      }
78  
79  
80      /**
81       * Lisätään kuuntelija edit-kenttään. 
82       */
83      @Override
84      public synchronized void addKeyListener(KeyListener l) {
85          edit.addKeyListener(l);
86      }
87  
88  
89      /**
90       * @return edit-kentän viite
91       */
92      public JTextField getEdit() {
93          return edit;
94      }
95  
96  
97      /**
98       * Asetetaan edit-kentän leveys merkkeinä 
99       * @param columns montako saraketta 
100      */
101     public void setColumns(int columns) {
102         edit.setColumns(columns);
103     }
104 
105 
106     /**
107      * @return edit kentän leveys sarakkeina
108      */
109     public int getColumns() {
110         return edit.getColumns();
111     }
112 
113 
114     /**
115      * Asetetaan labelin leveys
116      * @param w asetettava leveys
117      */
118     public void setLabelWidth(int w) {
119         int h = getPreferredSize().height;
120         label.setPreferredSize(new Dimension(w, h));
121     }
122 
123 }
124