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:}