SQL


レイアウトマネジャー

1	package com.tkadvance;
2
3	import java.awt.BorderLayout;
4	import java.awt.event.ActionEvent;
5	import java.awt.event.ActionListener;
6	import javax.swing.JButton;
7	import javax.swing.JFrame;
8	import javax.swing.JLabel;
9
10	public class SampleJFrame extends JFrame implements ActionListener{
11		private static final long serialVersionUID = 1L;
12		JLabel l1;
13
14		public SampleJFrame() {
15			super();
16			setDefaultCloseOperation(EXIT_ON_CLOSE);
17			this.setTitle("サンプルJFrame");
18			l1 = new JLabel("Hello World!!");
19			this.add(l1, BorderLayout.CENTER);
20
21			JButton btn1 = new JButton("テキストが変更されます");
22			btn1.addActionListener(this);
23			this.add(btn1, BorderLayout.SOUTH);
24
25			this.setSize(300,200);
26			this.setVisible(true);
27		}
28
29		public static void main(String[] args) {
30			new SampleJFrame();
31		}
32
33		public void actionPerformed(ActionEvent e) {
34			l1.setText("ボタンが押されました。");
35		}
36	}

前回のコンポーネントのプログラムを変更して作成しています。
12. JLabelの変数「l1」が前回と違う場所に宣言されていますね。これは前回は
   public SampleJFrame()
   のコンストラクタ内のスコープのみで編巣が使われていたので
   コンストラクタ内でインスタンスを作成しても問題ないのですね。今回は
   public void actionPerformed(ActionEvent e)
   のメソッド内でも「l1」の変数にアクセスしなければいけないのでクラス内で
   使用できるように宣言しています。


22. ここで(btn1)ボタンアクションリスナーをaddしています。 33. こでボタン(btn1)が押された場合の処理を記述します。    ボタンが複数ある場合はif構文を使うなりして処理を分岐することもできます。