- 1、FlowLayout佈局管理器的策略:按照控件加入的先後順序從左到右排列,一行排滿了,再換下一行,然後繼續從左到右排列,每一行的組件都是居中排列的
- 2、FlowLayout佈局管理的構造器
1)FlowLayout():構造一個FlowLayout對象,它是居中對齊的,默認的水平和垂直間隙是5個單位
2)FlowLayout(int align):構造一個FlowLayout對象,默認的水平和垂直間隙都是5個單位
3)FlowLayout(int align,int h,int v):創建一個新的FlowLayout佈局管理器,它具有指定的對齊方式以及指定的水平和垂直間隙
下面代碼簡單的演示上面的規則:
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Example03 {
static final int WIDTH=300;
static final int HEIGHT=200;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame=new JFrame("測試程序");
frame.setSize(WIDTH,HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel pane=new JPanel();
frame.setContentPane(pane);
JButton bt1=new JButton("港幣");
JButton bt2=new JButton("人民幣");
JButton bt3=new JButton("美元");
JButton bt4=new JButton("歐元");
JButton bt5=new JButton("英鎊");
// 將中間容器的佈局管理器設置爲FlowLayout
pane.setLayout(new FlowLayout());
// 將五個按鈕分表按照FlowLayout佈局管理器方式添加到中間容器中
pane.add(bt1);
pane.add(bt2);
pane.add(bt3);
pane.add(bt4);
pane.add(bt5);
frame.pack();
}
}
上述代碼運行結果如下:
下面的代碼示例演示將FlowLayout和BorderLayout佈局管理結合的場景,主要思路是將FlowLayout佈局管理器同頂層容器關聯,然後再其中添加五個BorderLayout佈局管理器,並在這5個佈局管理器中添加組件,代碼如下:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Example04 {
static final int WIDTH=300;
static final int HEIGHT=200;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame=new JFrame("測試程序");
frame.setSize(WIDTH,HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel pane=new JPanel();
frame.setContentPane(pane);
// 創建25個按鈕
JButton b1=new JButton("港幣");
JButton b2=new JButton("人民幣");
JButton b3=new JButton("美元");
JButton b4=new JButton("歐元");
JButton b5=new JButton("英鎊");
JButton b6=new JButton("主板");
JButton b7=new JButton("內存");
JButton b8=new JButton("鍵盤");
JButton b9=new JButton("顯示器");
JButton b10=new JButton("鼠標");
JButton b11=new JButton("大米");
JButton b12=new JButton("蔬菜");
JButton b13=new JButton("稻子");
JButton b14=new JButton("豬肉");
JButton b15=new JButton("牛肉");
JButton b16=new JButton("麪包");
JButton b17=new JButton("蛋糕");
JButton b18=new JButton("巧克力");
JButton b19=new JButton("奶酪");
JButton b20=new JButton("蘋果派");
JButton b21=new JButton("筆記本");
JButton b22=new JButton("電話");
JButton b23=new JButton("辦公桌");
JButton b24=new JButton("鋼筆");
JButton b25=new JButton("文件夾");
// 將中間容器的佈局管理器方式設置爲FlowLayout
pane.setLayout(new FlowLayout());
// 創建五個中間容器
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel p4=new JPanel();
JPanel p5=new JPanel();
// 將五個中間容器添加到上層中間容器
pane.add(p1);
pane.add(p2);
pane.add(p3);
pane.add(p4);
pane.add(p5);
// 每個中間容器的佈局管理器設置爲BorderLayout
p1.setLayout(new BorderLayout());
p2.setLayout(new BorderLayout());
p3.setLayout(new BorderLayout());
p4.setLayout(new BorderLayout());
p5.setLayout(new BorderLayout());
// 將1-5個按鈕添加到p1中
p1.add(b1,"North");
p1.add(b2,"West");
p1.add(b3,"South");
p1.add(b4,"East");
p1.add(b5,"Center");
// 將6-10個按鈕添加到p2中
p2.add(b6,"North");
p2.add(b7,"West");
p2.add(b8,"South");
p2.add(b9,"East");
p2.add(b10,"Center");
// 將11-15個按鈕添加到p3中
p3.add(b11,"North");
p3.add(b12,"West");
p3.add(b13,"South");
p3.add(b14,"East");
p3.add(b15,"Center");
// 將16-20個按鈕添加到p4中去
p4.add(b16,"North");
p4.add(b17,"West");
p4.add(b18,"South");
p4.add(b19,"East");
p4.add(b20,"Center");
// 將21-25個按鈕添加到p5中去
p5.add(b21,"North");
p5.add(b22,"West");
p5.add(b23,"South");
p5.add(b24,"East");
p5.add(b25,"Center");
frame.pack();
}
}
上述代碼運行結果如下: