タイトル
TOPJavaSwingLayoutManager → This Page

BorderLayout@Swing LayoutManagerサンプル

概要

Java - Swing - LayoutManager - BorderLayout のサンプルです。
BorderLayout はコンテナを東西南北(上下左右)+中央に分割して
コンポーネントをセットする場合に使います。

コンストラクタ

コンストラクタ説明引数引数説明
BorderLayout() コンポーネント間の隙間を空けずに
BorderLayout を作成
- -
BorderLayout(int hgap, int vgap) コンポーネント間の隙間を空けた
BorderLayout を作成
hgap 水平方向間隔
vgap 垂直方向間隔


解説

それぞれの位置には1つしかコンポーネントをセットできません。
配置はコンテナの add メソッドで行い、add(コンポーネント, 位置); のように指定します。
位置に設定可能な値は以下の通りです。

設定値(定数)内容
BorderLayout.NORTH 上(北)に配置
BorderLayout.SOUTH 下(南)に配置
BorderLayout.WEST 左(西)に配置
BorderLayout.EAST 右(東)に配置
BorderLayout.CENTER 中央に配置


サンプルを実行すると以下の図のようになります。
サンプル画像(縮小)

ウインドウサイズを拡大すると各コンポーネントのサイズも拡大します。
サンプル画像(拡大)

コンポーネントのサイズは以下のルールで決まります。
設定値(定数)内容
BorderLayout.NORTH, BorderLayout.SOUTH コンポーネントの高さはそのまま、幅は最大まで広がる
BorderLayout.WEST, BorderLayout.EAST コンポーネントの幅はそのまま、高さは最大まで広がる
ただし BorderLayout.NORTH, BorderLayout.SOUTH の高さを引いた分
BorderLayout.CENTER 上記以外の余ったサイズの最大まで広がる


サンプルソース

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 * LayoutManager サンプル01
 * ・BorderLayout
 * ・隙間を設定
 * 
 * @author みっちー
 */
public class LayoutManager01 extends JFrame {
	
	/**
	 * 開始メソッド
	 * 
	 * @param args	パラメータ
	 */
	public static void main(String[] args){
		LayoutManager01 frame = new LayoutManager01();
		
		// 閉じるボタンをクリックされた場合の動作を設定
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// ウインドウのタイトルを設定
		frame.setTitle("LayoutManager サンプル01[BorderLayout]");
		
		// フレームの X座標、Y座標、幅、高さを設定
		frame.setBounds(100, 200, 480, 200);
		
		// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
		frame.setVisible(true);
	}
	
	/**
	 * コンストラクタ
	 */
	public LayoutManager01() {
		// ベースとなるパネルを[BorderLayout]として作成
		// 10,10 の隙間を設定
		JPanel panelBase = new JPanel();
		panelBase.setLayout(new BorderLayout(10, 10));
		
		// ボタンを作成
		JButton button1 = new JButton("NORTH");
		JButton button2 = new JButton("CENTER");
		JButton button3 = new JButton("SOUTH");
		JButton button4 = new JButton("WEST");
		JButton button5 = new JButton("EAST");
		
		// パネルにボタンを配置
		panelBase.add(button1, BorderLayout.NORTH);		// 上
		panelBase.add(button2, BorderLayout.CENTER);	// 中
		panelBase.add(button3, BorderLayout.SOUTH);		// 下
		panelBase.add(button4, BorderLayout.WEST);		// 左
		panelBase.add(button5, BorderLayout.EAST);		// 右
		
		// ベースパネルを追加
		getContentPane().add(panelBase, BorderLayout.CENTER);
	}
}

サンプルソースのダウンロード

ソースのダウンロード(Eclipse用のプロジェクトファイルも同梱)

更新履歴

2016/05/13 Windows 8.1 + Java 7 環境で全体を見直し
2007/12/07 新規作成


TOPJavaSwingLayoutManager → This Page