我用如下代码:
gbc.gridwidth = 1;
gbc.gridheight = 2;
gbc.weighty = 1;
addButton(bs[7]);
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.gridheight = 1;
addButton(bs[8]);
addButton(bs[9]);
可以实现如图所示的布局:
但我现在想让button8纵跨两行,button7 和button9处在同一列,且都为一行。我用了如下代码,但实现不了,
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weighty = 1;
addButton(bs[7]);
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.gridheight = 2;
addButton(bs[8]);
gbc.weighty=1;
gbc.gridwidth = 1;
gbc.gridheight=1;
addButton(bs[9]);只能成为如图所示:
为何我的button8不能纵跨两行呢?
GridBagLayout
gbc.gridwidth = 1;
gbc.gridheight = 2;
gbc.weighty = 1;
addButton(bs[7]);
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.gridheight = 1;
addButton(bs[8]);
addButton(bs[9]);
可以实现如图所示的布局:
但我现在想让button8纵跨两行,button7 和button9处在同一列,且都为一行。我用了如下代码,但实现不了,
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weighty = 1;
addButton(bs[7]);
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.gridheight = 2;
addButton(bs[8]);
gbc.weighty=1;
gbc.gridwidth = 1;
gbc.gridheight=1;
addButton(bs[9]);只能成为如图所示:
为何我的button8不能纵跨两行呢?
GridBagLayout
用绝对定位,setBounds(x,y,w,h)要么就把79放在一个JPanel里面,JFrame里面添加Jpaenl和8.
GridBagLayout还是挺复杂的。
java api文档里面有讲解,也有一个例子。
建议楼主把那个例子看懂,然后自己修改修改看看效果。
我也是最近刚刚学过这个,感觉挺不错的。