2011-06-24 60 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

相关问题