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