跟我學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));