1. 程式人生 > >跟我學JAVA(5)圖形化介面設計——佈局管理器之FlowLayout(流式佈局)

跟我學JAVA(5)圖形化介面設計——佈局管理器之FlowLayout(流式佈局)

一、佈局管理器所屬類包

所屬類包

佈局管理器名稱

說明

Java.awt

FlowLayout(流式佈局)

元件按照加入的先後順序按照設定的對齊方式從左向右排列,一行排滿到下一行開始繼續排列

BorderLayout(邊界佈局)

容器劃分為東、西、南、北、中五個區域,每個區域只能放置一個元件。

GridLayout(網格佈局)

容器的空間劃分成M×N列的網格區域, 每個區域只能放置一個元件。

CardLayout(卡片佈局)

如同一疊牌,每個牌對應一個元件,但每次只能顯示其中的一張牌。適用於在一個空間中防止多個元件的情況

GridBagLayout(網格包佈局)

GridLayout的升級版,元件仍然是按照行、列放置,但是每個元件可以佔據多個網格

Java.swing

BoxLayout(箱式佈局)

允許在容器中縱向或者橫向防止多個控制元件

SprigLayout(彈簧佈局)

根據一組約束條件放置控制元件

空佈局

不使用佈局管理器,按照控制元件自身提供的大小、位置資訊放置控制元件

二、容器的預設佈局管理器

各容器都有預設的佈局管理,見下表:

容器

預設佈局方式

頂層容器

JFrame

BorderLayout(邊界佈局)

JDialog

BorderLayout(邊界佈局)

JApplet

FlowLayout(流式佈局)

中間容器

JPanel

FlowLayout(流式佈局)

三、FlowLayout(流式佈局)

使用FlowLayout佈局方式的容器中元件按照加入的先後順序按照設定的對齊方式(居中、左對齊、右對齊)從左向右排列,一行排滿(即元件超過容器寬度後)到下一行開始繼續排列。

1、流式佈局特徵如下:

l  元件按照設定的對齊方式進行排列

l  不管對齊方式如何,元件均按照從左到右的方式進行排列,一行排滿,轉到下一行。(比如按照右對齊排列,第一個元件在第一行最右邊,新增第二個元件時,第一個元件向左平移,第二個元件變成該行最右邊的元件,這就是從左向右方式進行排列)

2、流式佈局FlowLayout類的常用建構函式和方法

建構函式

名稱

用途

FlowLayout()    

構造一個新的 FlowLayout,它是預設居中對齊的,預設的水平和垂直間隙是5個畫素

FlowLayout(int align)

構造一個新的 FlowLayout,它具有指定的對齊方式,預設的水平和垂直間隙是 5 個畫素

五個引數值及含義如下:

0或FlowLayout.lEFT ,控制元件左對齊

1或FlowLayout.CENTER ,居中對齊

2或FlowLayout.RIGHT ,右對齊

3或FlowLayout.LEADING,控制元件與容器方向開始邊對應

4或FlowLayout.TRAILING,控制元件與容器方向結束邊對應

如果是0、1、2、3、4之外的整數,則為左對齊

FlowLayout(int align, int hgap, int vgap)     

建立一個新的流佈局管理器,它具有指定的對齊方式以及指定的水平和垂直間隙。

方法

名稱

用途

Void setAlignment(int align)

設定此佈局的對齊方式。

void setHgap(int hgap)

設定元件之間以及元件與 Container 的邊之間的水平間隙。

void setVgap(int vgap)

設定元件之間以及元件與 Container 的邊之間的垂直間隙。

3、FlowLayout 佈局應用程式碼段舉例

1)        設定FlowLayout 佈局

JFrame  fr=new JFrame( );

FlowLayout  flow=new FlowLayout( );

fr.setLayout(flow);

上面的語句可以簡化成:
fr.setLayout(new FlowLayout());

2)        設定框架fr為元件左對齊的FlowLayout佈局 

fr.setLayout(newFlowLayout(FlowLayout.LEFT));

3)        設定框架fr為元件左對齊的FlowLayout佈局,並且元件的水平間距為20畫素,垂直間距為40畫素。

fr.setLayout(new  FlowLayout(FlowLayout.LEFT,20,40));