BorderLayout布局管理器:
BorderLayout 也是一種非常簡單的布局政策,它把容器内的空間簡單地劃分為:North,South,East,West和Center 5個區域,每加入一個元件都應該指明把這個元件加在哪個區域中。BorderLayout是頂層容器(Window,Frame, Dialog)的預設布局管理器。
BorderLayout界面最多隻能顯示5個控件,若在一個區域中加上多個component,則隻有最後加上的那個是可見的。加入控件的時候,可以指定加入的方位,預設的情況是加入到中間。
當容器的大小發生變化時,用BorderLayout管理的元件會發生變化,其變化規律是:元件的相對位置不變,大小發生變化.例如容器變高了,則North、South 區域不變,West、Center、East區域變高;如果容器變寬了,West、East區域不變,North、Center、South區域變寬.不一定所有的區域都有元件,如果四周的區域(West、East、North、South區域)沒有元件,則由Center區域去補充,但是如果 Center區域沒有元件,則保持空白.
//使用BorderLayout的構造方法,可設定其component的間距。如:
BorderLayout(); //component間沒有間距
BorderLayout(int hgap,int vgap); // hgap和vgap分别對應水準和垂直方向的間距。
import java.awt.*;
public class buttonDir{
public static void main(String args[]){
Frame f = new Frame("BorderLayout");
f.setLayout(new BorderLayout());
f.add("North", new Button("North");
f.add("South", new Button("South");
f.add("East", new Button("East");
f.add("West", new Button("West");
f.add("Center", new Button("Center");
f.setSize(200,200);
f.setVisible(true);
}
FlowLayout布局管理器:
流式布局管理器把容器看成一個行集,好象平時在一張紙上寫字一樣,一行寫滿就換下一行。行高是用一行中的控件高度決定的。FlowLayout是Panel的預設布局。在生成流式布局時能夠指定顯示的對齊方式,預設情況下是居中(FlowLayout.CENTER)。當容器的大小發生變化時,用FlowLayout管理的元件會發生變化,其變化規律是:元件的大小不變,但是相對位置會發生變化.
FlowLayout() //生成一個預設的流式布局,元件在容器裡居中,每個元件之間留下5個像素的距離.
FlowLayout(int alinment) //align決定component的位置,其值有FlowLayout.LEFT
FlowLayout(int alignment,int hgap,int vgap) //hgap和vgap分别對應水準和垂直方向的間距,預設為5機關(unit)
GirdLayout布局管理器:
Grid布局管理器提供了放置component的靈活手段。程式員可以建立一個有多行和多列的布局管理器,然後component就可以按一定的次序(從左到右,從上到下)進行排列。
當Grid布局管理器對應的視窗發生變化時,内部component的相對位置并不變化,隻有大小發生變化。
Grid布局管理器總是忽略component傾向的大小(prefered size),它把每個component的大小設定成相同的。
GridLayout() //預設建立一行的布局,每個component占居一列
GridLayout(int rows, int cols) //建立指定行和列的布局,rows和cols對應行數和列數
GridLayout(int rows, int cols, int hgap, int vgap) //建立指定行列數和間距的布局,hgap和vgap分别對應水準和垂直間距。
當控件數多于或少于構造函數裡的行數和列數時,行數時固定的,列數根據情況增減。另,構造函數裡的行數和列數能夠有一個為零,但是不能都為零。當容器裡增加控件時候,容器内将向0的那個方向增長。
如果要元件自定義位置setBounds(x,y,width,height),則布局要使用null。setLayout(null)。