ボタンを置く

パネルにボタンとラベルを配置します

前回作ったパネル部分を内部クラスにした、PanelTest2.java を元に、MyJPanel 部分を変更してボタンとラベルを置きます。

ラベルは文字を表示するだけですが、書く位置を数値で示す必要がないので楽です。ボタンは押すことができますが、まだなにも働きません。今後拡張していきます。

ファイル名 ButtonTest.java

/**
 *  パネルにボタンを配置 
 */
import javax.swing.*;
import java.awt.*;

public class ButtonTest extends JFrame{
	/* コンストラクタ */
	public ButtonTest(){
		setSize(400, 300);                 //サイズと位置を指定
		setDefaultCloseOperation(EXIT_ON_CLOSE); //終了処理を追加
		MyJPanel panel01 = new MyJPanel(); //パネルをつくる
		Container cn = getContentPane();   //コンテナ取得
		cn.add(panel01);                   //パネルをコンテナに貼る
		setVisible(true);                        //実際に表示する
	}
	/********* main **********/
	public static void main(String[] args){
		/* フレームを作成(事実上のプログラム実行) */
		ButtonTest frame1 = new ButtonTest();
	}
	/* パネルを作るクラス */
	public class MyJPanel extends JPanel{
		/* コンストラクタ */
		public MyJPanel(){
			setBackground(new Color(240,255,255));             //パネルに色を指定
			JButton button = new JButton("Click Me!");         //ボタンを作る
			JLabel label = new JLabel("clicks",JLabel.CENTER); //ラベルを作る
		
			setLayout(new BorderLayout());     //レイアウトマネージャを指定
			add(label, BorderLayout.CENTER);   //ラベルを真ん中に
			add(button, BorderLayout.SOUTH);   //ボタンを下に配置
		}
	}
}

解説

パネルに色を指定

パネルの色を設定しています。数値は(赤の強さ, 緑の強さ, 青の強さ, )です。ラベルは透けてこの色が見えますが、ボタンはシステムの色になります。もちろん指定すればこれも換えられます。

		setBackground(new Color(240,255,255));

ボタンを作る

ボタンを作ります。JButtonのクラスを使ってボタンオブジェクトを生成しています。(   )の中に String を指定するとこれがボタンの中央に表示されます。

		JButton button = new JButton("Click Me!");

ラベルを作る

ラベルを作ります。JLabelのクラスを使ってラベルオブジェクトを生成しています。(   )の中に String を指定するとこれがラベルに左寄せで表示されます。JLabel.CENTER を加えてこれを中央に表示されるようにしました。

		JLabel label = new JLabel("clicks",JLabel.CENTER);

レイアウトマネージャ

BorderLayoutはレイアウトマネージャです。私たちに代わって適当に配置をしてくれます。もちろん細かく指定することもできるのですが、いまは自動にしておきます。レイアウトマネージャにはいろいろ種類があって、BorderLayoutはそのひとつです。

		setLayout(new BorderLayout());

BorderLayoutは次のように配置します。ただし、この5つのうち無いものは自動的に領域をつぶして、あるものをいっぱいまで広げます。

NORTH
WESTCENTEREAST
SOUTH

ラベルを真ん中に配置

MyJPanelにラベルを貼ります。BorderLayout.CENTER はレイアウトマネージャへの指示です。

		add(label, BorderLayout.CENTER);

ボタンを下に配置

MyJPanelにボタンを貼ります。BorderLayout.SOUTH はレイアウトマネージャへの指示です。

		add(button, BorderLayout.SOUTH);

課題1

上記プログラムをつくりなさい。

課題2

ファイル名 ButtonTest2.java

ボタンの数やラベルの数を増やして、WESTやNORTHに配置してみなさい。

もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified