01:// テキストフィールドの加減
02:
03:import java.awt.* ;
04:import java.awt.event.* ;
05:import javax.swing.* ;
06:
07:class InputField extends JTextField {
08: InputField() {
09: super("", 10);
旧24〜32行目を以下にコピーし、
area1 を削除(10、11行目)
および13〜16にクラス名を追加
10: setHorizontalAlignment( JTextField.RIGHT );
11: addActionListener(new ActionListener() {
12: public void actionPerformed(ActionEvent e) {
13: int arg1 = Integer.parseInt(TextFieldDemo4.area1.getText());
14: int arg2 = Integer.parseInt(TextFieldDemo4.area2.getText());
15: TextFieldDemo4.addarea.setText(String.valueOf(arg1+arg2));
16: TextFieldDemo4.subarea.setText(String.valueOf(arg1-arg2));
17: }
18: });
19: }
20:}
21:
22:class TextFieldDemo4 {
23:
24: static JTextField area1; // データ入力用
25: static JTextField area2; // 〃
26: static JLabel addarea = new JLabel( "", SwingConstants.RIGHT ); // 和
27: static JLabel subarea = new JLabel( "", SwingConstants.RIGHT ); // 差
28:
29: public static void main(String args[]) {
30: // フレームの作成
31: JFrame frame = new JFrame("2数の計算");
32: frame.addWindowListener(new WindowAdapter() {
33: public void windowClosing(WindowEvent e) { System.exit(0); }
34: });
35: Container pane = frame.getContentPane();
36: pane.setLayout(new BorderLayout());
37: // テキストフィールドの作成
旧23〜43行目を次の2行に置き換え
38: area1 = new InputField();
39: area2 = new InputField();
40: // 表題ラベルの作成
41: JPanel west = new JPanel( new GridLayout(2,1) );
42: west.add( new JLabel("和:") );
43: west.add( new JLabel("差:") );
44: // コンポーネントの配置
45: JPanel north = new JPanel( new GridLayout(2,1) );
46: north.add(area1);
47: north.add(area2);
48:
49: JPanel center = new JPanel( new GridLayout(2,1) );
50: center.add(addarea);
51: center.add(subarea);
52:
53: pane.add( north, BorderLayout.NORTH );
54: pane.add( west, BorderLayout.WEST );
55: pane.add( center, BorderLayout.CENTER );
56: // ウィンドウの表示
57: frame.pack();
58: frame.setVisible(true);
59: }
60:}