FlowLayout(流控布局管理器):從左向右排列,右邊空間不夠自動換行,有點像響應式開發,視窗自适應.
Ø FlowLayout():使用預設對齊方式,預設垂直、水準間距.
Ø FlowLayout(int align):使用指定對齊方式,預設垂直、平平間距
Ø FlowLayout(int align,int hgap,init vgap):使用指定對齊方式、指定水準、垂直間距
Ø 靜态常量:LEFT、 RIGHT、 CENTER 、LEADING、 TRAILING
Panel、Applet等預設使用FlowLayout布局管理器
BorderLayout:将容器分為:EAST 、SOUTH、WEST、NORTH、CENTER五個區域,
Ø 使用BorderLayout布局管理器添加元件時,需要指定添加哪個區域,如果沒有指定,預設添加到center中
Ø 如果向同一個區域裡面添加多個元件,後放入的元件會覆寫前面的元件。
Ø BorderLayout():使用預設垂直、水準間距
Ø BorderLayout(int hgap,int vgap):使用指定的水準、垂直間距
Ø 靜态常量: EAST 、SOUTH、WEST、NORTH、CENTER
GridLayout布局管理器:将容器分割成網格,每個網格所占的區域大小相同。預設從左向右、從上到下依次添加到每個網格中.與FlowLayout不同的是,放在GridLayout布局管理器中的各個元件的大小由元件所處的區域來決定(每個元件自動漲大到占滿整個區域)。
Ø GridLayout(int rows,int cols):指定行數、列數、預設縱向、橫向間距
Ø GridLayout(int rows,int cols,int hgap,int vgap): 指定行數、列數、縱向、橫向間距
GridBagLayout:管理器中一個元件可以跨越一個或多個網格,并可設定網絡的大小互不相同,進而增加布局的靈活性,有點像表格中的合并單元格.為了處理GridBagLayout管理器中元件的大小、跨越性,Java提供了GridBagConstraints對象與特定的GUI元件關聯
Ø 建立GridBagLayout布局管理器,并指定GUI容器使用該布局管理器
GridBagLayout gbc = <b>new</b> GridBagLayout();
container.setLayout(gbc);
Ø 建立GridBagConstraints對象,并設定該對象的相關屬性
GridBagConstraints gbc = <b>new</b> GridBagConstraints();
gbc.gridx=2;//設定受該對象控制的GUI元件位于網格的橫向索引
gbc.gridy=1;//設定受該對象控制的GUI元件位于網格的縱向索引
gbc.gridwidth=2;//設定受該對象控制的GUI元件橫向跨越多少網絡
gbc.gridheight=1;//設定受該對象控制的GUI元件縱向跨越多少網絡
Ø 調用GridBagLayout對象的方法來建立GridBagConstraints對象與受控制元件之間的關聯。
gb.setConstraints(c, gbc);//c是元件
Ø 添加元件,與采用普通布局管理器添加元件方法一樣.
Ø 如果需要向容器中添加多個GUI元件,則需重複(2)、(3)、(4)步驟,由于GridBagConstraints對象可以多次重用,是以隻需要建立一個GridBagConstraints對象即可,每次添加GUI元件之前先改變GridBagConstraints對象的屬性即可。
CardLayout:它将加入容器的所有元件看成一疊卡片,每次隻有最上面的那個Componet才可見。
Ø CardLayout():建立預設的CardLayout布局管理器
Ø CardLayout(int hgap,int vgap):指定卡片與容器左右邊界的間距(hgap)、上下邊界(vgap)的間距
Ø first(Container target):顯示target容器中第一個卡片
Ø last(Container target):顯示target容器中最後一個卡片
Ø previous(Container target):顯示target容器中前一個卡片
Ø next(Container target):顯示target容器中後一個卡片
Ø show(Container target,String name):顯示target容器中後一個卡片
絕對定位:
Ø 将容器的布局管理器設定成null:setLayout(null);
Ø 往容器上添加元件時,先調用setBounds()或setSize()方法先設定元件大小、位置.或者直接建立GUI元件時通過構造參數指定該元件的大小、位置,然後将該有元件添加到容器中.
BoxLayout:是Swing引入的一個新的布局,他是用來替代GridBagLayout的,但是保留了GridBagLayout的很多優點,但是沒那麼複雜。BoxLayout可以在垂直和水準兩個方向上擺方元件.
Ø BoxLayout(Container target,int axis):指定建立基于target容器的BoxLayout布局管理器,該布局管理器裡元件按axis方向排列。其中axis有BoxLayout.X_AXIS(橫向)和BoxLayout.Y_AXIS(縱向)兩個方向
Box:是一個特殊的容器,它有點像Panel容器,但是該容器預設使用BoxLayout布局管理器,Box提供了兩個靜态方法來建立Box對象:
Ø createHorizontalBox():建立一個水準排列元件的Box容器
Ø createVerticalBox():建立一個垂直排列元件的Box容器
BoxLayout沒有提供設定間距的構造器和方法,BoxLayout使用Glue(橡膠)、strut(支架)和RigidArea的元件來控制元件間的距離.其中Glue代表可以在橫向、縱向兩個方向同時拉伸的空白元件(間距),Strut代表可以在橫向、縱向任意一個方向上拉伸的空白元件(間距),RigidArea代表不可拉伸的空白元件(間距).
Box提供了如下五個靜态方法來建立Glue、Strut和RigidArea:
Ø createHorizontalGlue:建立一條水準Glue(可以兩個方向同時拉伸的間距)
Ø createVerticalGlue:建立一條垂直Glue(可以兩個方向同時拉伸的間距)
Ø createHorizontalStrut:建立一條水準Strut(可以水準方向同時拉伸的間距)
Ø createVerticalStrut:建立一條垂直Strut(可以垂直方向同時拉伸的間距)
Ø createRigidArea(Dimension d):建立指定寬度、高度的RigidArea(不可拉伸的間距)