我用如下代码:
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

解决方案 »

  1.   

    要么把页面布局器设为空
    用绝对定位,setBounds(x,y,w,h)要么就把79放在一个JPanel里面,JFrame里面添加Jpaenl和8.
      

  2.   

    gridx、gridy、weightx、weighty你都没有设置啊。
    GridBagLayout还是挺复杂的。
    java api文档里面有讲解,也有一个例子。
    建议楼主把那个例子看懂,然后自己修改修改看看效果。
    我也是最近刚刚学过这个,感觉挺不错的。
      

  3.   

    看了下api,貌似用到基线什么的,但是网上基本不谈这玩意,还得慢慢研究。