Java 入門

ホーム > Swing による GUI > 等間隔のマス目に並べる GridLayout (グリッドレイアウト)

等間隔のマス目に並べる GridLayout (グリッドレイアウト)

グリッドレイアウト (GridLayout) ・レイアウトマネージャは、含まれるコンポーネントを同じサイズの矩形に並べるレイアウトマネージャです。

コンストラクタで縦横のマス目の数を指定します。レイアウトマネージャとして、 グリッドレイアウトが指定されたコンテナでは、それに含まれるコンポーネントを上から下へ、左から右へと順番に升目に並べていきます。

次の例では JPanel のレイアウトマネージャーに、グリッドレイアウトを指定し、升目は3列、2行を指定しています。

そこにボタンを6個立て続けに追加していくと、次のスクリーンショットのように順番にコンポーネントが並びます。

このコードは次のようになります。

package com.keicode.java.testapp;

import java.awt.EventQueue;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

@SuppressWarnings("serial")
public class GLTestJFrame extends JFrame {

	public GLTestJFrame() {
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(350, 150);
		setTitle("Grid Layout");
		setLayout(new GridLayout(2,3));
		
		for(int i=0; i<6; i++) {
			add(new JButton("Button " + (i+1)));
		}
				
		setVisible(true);
	}
	
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			@Override
			public void run() {
				new GLTestJFrame();
			}
		});
	}

}

この他、グリッドに並べるレイアウトマネージャとしては、グリッドバッグレイアウトというのがありますが、 個人的には少々使いにくいです。

ひとつのレイアウトマネージャだけでコンポーネントを配置するより、 ある程度まとめてコンポーネントを配置したら、それを入れ子にして構成するほうが簡単だと思います。

ホーム > Swing による GUI > 等間隔のマス目に並べる GridLayout (グリッドレイアウト)