2011-06-24 61 views
26

我使用一個網格佈局,我的代碼如下:如何使用GridLayout在swing中創建不同大小的列?

int changingVar = 1; 

JPanel panel = new JPanel(new GridLayout(changingVar, 2)); 
panel.add(new JButton("BUTTON1")); 
panel.add(new JButton("BUTTON2")); 

這看起來像:

___________________________________________ 
| [  BUTTON1  ] [  BUTTON2  ] | 
___________________________________________ 

這是兩個大小均勻的列。我想這樣做:

___________________________________________ 
| [   BUTTON1   ] [ BUTTON2 ] | 
___________________________________________ 

其中一列佔用面板空間,然後另一列。我如何使用gridlayout來做到這一點?我不反對使用另一種佈局,只要我可以有不同數量的行和列是兩種不同的大小。

感謝

回答

19

如果你想要這個效果,那麼你需要利用的GridBagLayout。

http://download.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

樂趣與一個= P

編輯:

可以解決該問題通過使用的FlowLayout和網格佈局的混合物來獲得類似的效果。但是,隨着佈局複雜性變大,此解決方案將變得非常繁瑣和混亂。

+1

我以前使用過GridBag,但是我希望gridlineout只有一個adjust_column(column_num)類功能 – Grammin

+1

@Grammin記住,我沒有跟上過去兩年的Java API變化。話雖如此,我走的是你走向的同一條路。據我所知,尺寸在標準GridLayout中是統一的。因此,增加了允許不同大小的列和行元素的GridBadLayout –

+0

對我來說足夠了,謝謝! – Grammin

相關問題