Java Swing之Layout Components

Swing除了可以使用絕對位置來定義佈局之外,更常見的是使用J2SE平臺提供的各種Layout Managers。(GroupLayout是針對輔助佈局工具的,比如NetBeans,通過代碼的形式是不會用到GroupLayout的,更有用的是GridBagLayout,它是最靈活和強大的Layout Manager)。

主要的有8種:

1.BorderLayout  

默認的content panes使用的Layout Manager。分爲上,下,左,右,中 5個部分,通常來說,container只會使用到BorderLayout的其中1個或者2個部分,要麼只是中間部分,要麼就是中間以及下面。

如果你想將某個JComponent添加到具體的某個位置,那麼在添加的時候直接在add方法中指定就可以,比如container.add(button, BorderLayout.PAGE_START)。

BorderLayout提供了設置gap的方法,如果想要設置的話,可以很方便的調用

2.BoxLayout  

它的外觀就是一行或者一列一個挨着一個的佈局。凡是哪種上下排列的,左右排列的,都可以使用它。

3.CardLayout  

當你想要使用重複利用同一個空間的時候,需要CardLayout。使用combox或者tabs來切換,沒切換一次,其對應的空間不變,但是空間裏面的內容會根據你選擇的tab或者combox的具體元素進行改變。有點像瀏覽器的tab切換。

4.FlowLayout  

所有的元素會被放置成一行,如果container空間不夠的話,就會自動分行。如果元素加起來的寬度小於container的空間,就會自動被放置在中心位置。

可以使用類的方法來指定元素的橫向和縱向的padding。

5.GridBagLayout  

這個是最靈活,也是最複雜的佈局方式。將container的空間分割成爲多個小格子。通過定義一個GridBagConstraints對象,然後在每次添加一個控件之前對該對象進行設置,從而達到想要的佈局效果。

GridBagConstraints有一些重要的參數如下:

gridx,gridy --- 指定在橫豎兩個方向的第幾個cell,0代表第一個cell。兩個參數一起可以確定所要添加的組件的起始位置

gridwidth,gridheight --- 指定在橫豎兩個方向各佔幾個cell的位置

fill --- 當


6.GridLayout 

顧名思義,就是將container的空間分成格子,格子的大小一致。如果空間變小,那麼格子的尺寸也會變小。定義GridLayout的時候可以說明要多少行,多少列,也可以只是指定其中一個,另一個爲0,那麼另一個就是沒有限制的,根據元素的多寡自動進行分配。

同樣,該類也提供方法,幫助你指定2個格子之間的橫向和縱向法gap。

7.GroupLayout  

8.SpringLayout





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