java學習記錄(1):layout

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)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章