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