package hayashi.yuu.register; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; /** * public class PropertyItem extends JPanel implements ActionListener * @author hayashi * */ public abstract class DeviceItem extends JPanel implements ActionListener { JLabel label; JComponent field; String value; // 設定データを保持する領域 public static final int ITEM_WIDTH_1 = 120; public static final int ITEM_WIDTH_2 = 80; public static final int LINE_WIDTH = ITEM_WIDTH_1 + ITEM_WIDTH_2; public static final int LINE_HEIGHT = 18; /** * コンストラクタ * @param prop2 * @param name * @param editable */ public DeviceItem(String name) { super(null); this.value = new String(""); } void createItem(String name, String value) { this.value = value; setupLabel(name, value); setupField(value); label.setBounds(0, 0, ITEM_WIDTH_1 - 6, LINE_HEIGHT); field.setBounds(ITEM_WIDTH_1, 0, ITEM_WIDTH_2, LINE_HEIGHT); setPreferredSize(new Dimension(ITEM_WIDTH_1, LINE_HEIGHT)); } JLabel setupLabel(String name, String value) { label = new JLabel(name, JLabel.RIGHT); add(label); return label; } /** * コーディング例: * * void setupField(String name, String value) { * this.value = value; * ((JTextField)field).setText(value); * field.setFont(new Font("MS UI Gothic", Font.PLAIN, 12)); * add(field); * } */ abstract void setupField(String value); /** * [反映]ボタンがクリックされたときの処理 * * public void actionPerformed(ActionEvent e) { * GuardixMonitor.logger.fine("[反映] "+ label.getText() +" = "+ text.getText()); * prop.setProperty(label.getText(), text.getText()); * } * @param e */ public abstract void actionPerformed(ActionEvent e); }