タイトル
 メニューにないコーナーはTopからいけます
TOPJavaSwingLayoutManager → This Page

SpringLayout@Swing LayoutManagerサンプル

概要

Java - Swing - LayoutManager - SpringLayout のサンプルです。
SpringLayout は相対位置でコンポーネントをセットする場合に使います。

コンストラクタ

コンストラクタ説明引数引数説明
SpringLayout() SpringLayout を作成 - -


解説

コンポーネントを追加する際、putConstraint メソッドを使って制約を指定します。
putConstraint は以下の引数を持っています。
引数引数説明
String e1 依存するエッジ
設定値(定数)内容
SpringLayout.NORTH
SpringLayout.SOUTH
SpringLayout.WEST
SpringLayout.EAST
Component c1 依存するコンポーネント
(制約を設定するコンポーネント)
int pad 依存する側とされる側の距離
String e2 依存されるエッジ
設定値は e1 を参照
Component c2 依存されるコンポーネント
(基準コンポーネント)

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

サンプルソース

import java.awt.BorderLayout;

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

/**
 * LayoutManager サンプル08
 * ・SpringLayout
 * 
 * @author みっちー
 */
public class LayoutManager08 extends JFrame {
	
	/**
	 * 開始メソッド
	 * 
	 * @param args	パラメータ
	 */
	public static void main(String[] args){
		LayoutManager08 frame = new LayoutManager08();
		
		// 閉じるボタンをクリックされた場合の動作を設定
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// ウインドウのタイトルを設定
		frame.setTitle("LayoutManager サンプル08[SpringLayout]");
		
		// フレームの X座標、Y座標、幅、高さを設定
		frame.setBounds(100, 200, 500, 200);
		
		// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
		frame.setVisible(true);
	}
	
	/**
	 * コンストラクタ
	 */
	public LayoutManager08() {
		// ベースとなるパネルを[SpringLayout]として作成
		SpringLayout layout = new SpringLayout();
		JPanel panelBase = new JPanel();
		panelBase.setLayout(layout);
		
		// ボタンを作成
		JButton button1 = new JButton("AAAAA");
		JButton button2 = new JButton("BBB");
		JButton button3 = new JButton("CCCCC");
		JButton button4 = new JButton("DDDDDDDD");
		
		// 各ボタンの相対位置(制約)を設定
		// ボタン1はパネルからの相対位置を設定
		layout.putConstraint(SpringLayout.NORTH, button1, 10, SpringLayout.NORTH, panelBase);
		layout.putConstraint(SpringLayout.WEST, button1, 10, SpringLayout.WEST, panelBase);
		// ボタン2はボタン1からの相対位置を設定
		layout.putConstraint(SpringLayout.NORTH, button2, 10, SpringLayout.NORTH, button1);
		layout.putConstraint(SpringLayout.WEST, button2, 10, SpringLayout.WEST, button1);
		// ボタン3はボタン1からの相対位置を設定
		layout.putConstraint(SpringLayout.NORTH, button3, 50, SpringLayout.NORTH, button1);
		layout.putConstraint(SpringLayout.WEST, button3, 100, SpringLayout.WEST, button1);
		// ボタン4はボタン3からの相対位置を設定
		layout.putConstraint(SpringLayout.NORTH, button4, 50, SpringLayout.NORTH, button3);
		layout.putConstraint(SpringLayout.WEST, button4, 50, SpringLayout.WEST, button3);
		
		// パネルにボタンを配置
		panelBase.add(button1);
		panelBase.add(button2);
		panelBase.add(button3);
		panelBase.add(button4);
		
		// ベースパネルを追加
		getContentPane().add(panelBase, BorderLayout.CENTER);
	}
}

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

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

更新履歴

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


TOPJavaSwingLayoutManager → This Page
Valid CSS!