等間隔のマス目に並べる 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();
}
});
}
}
この他、グリッドに並べるレイアウトマネージャとしては、グリッドバッグレイアウトというのがありますが、 個人的には少々使いにくいです。
ひとつのレイアウトマネージャだけでコンポーネントを配置するより、 ある程度まとめてコンポーネントを配置したら、それを入れ子にして構成するほうが簡単だと思います。