Swingのレイアウト種類
1) フローレイアウト(流し込みレイアウト)
2) グリッドレイアウト
【イメージ図 : 3行2列の場合】
+----------++----------+
| 1 || 2 |
+----------++----------+
+----------++----------+
| 3 || 4 |
+----------++----------+
+----------++----------+
| 5 || 6 |
+----------++----------+
3) ボーダーレイアウト
=> 「上」「左」「中央」「右」「下」に区画を分けてレイアウトする
【イメージ図】
+------------------+
| |
+------------------+
+---++--------++---+
| || || |
+---++--------++---+
+------------------+
| |
+------------------+
1) フローレイアウト
* 画面表示を変えれば、配置したボタンも流れる
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class FlowLayoutDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("FlowLayout Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
// ★ここ★
panel.setLayout(new FlowLayout());
JButton button1 = new JButton("Button1");
JButton button2 = new JButton("Button2");
button2.setPreferredSize(new Dimension(150, 100));
JButton button3 = new JButton("Button3");
JButton button4 = new JButton("Button4");
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
2) グリッドレイアウト
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GridLayoutDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("BorderLayout Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
// ★ここ★
panel.setLayout(new GridLayout(3, 2));
JButton button1 = new JButton("Button1");
JButton button2 = new JButton("Button2");
button2.setPreferredSize(new Dimension(150, 100));
JButton button3 = new JButton("Button3");
JButton button4 = new JButton("Button4");
JButton button5 = new JButton("Button5");
JButton button6 = new JButton("Button6");
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
panel.add(button5);
panel.add(button6);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
3) ボーダーレイアウト
* 「上」「左」「中央」「右」「下」に区画を分けてレイアウトする
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BorderLayoutDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("BorderLayout Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
// ★ここ★
panel.setLayout(new BorderLayout());
JButton button1 = new JButton("Button1");
JButton button2 = new JButton("Button2");
button2.setPreferredSize(new Dimension(150, 100));
JButton button3 = new JButton("Button3");
JButton button4 = new JButton("Button4");
JButton button5 = new JButton("Button5");
panel.add(button1, BorderLayout.NORTH);
panel.add(button2, BorderLayout.WEST);
panel.add(button3, BorderLayout.CENTER);
panel.add(button4, BorderLayout.EAST);
panel.add(button5, BorderLayout.SOUTH);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
補足
* 以下の関連記事でも使用している
http://blogs.yahoo.co.jp/dk521123/35027281.html