GridBagLayout layout = new GridBagLayout();
改成
GridBagLayout layout = new GridBagLayout(1,7);
试试

解决方案 »

  1.   

    好像没有GridBagLayout(int, int)这样的构造函数吧
      

  2.   

    不好意思,我把GridLayout混淆了,昨天才略微看了一下,实在也不是很清楚。
      

  3.   

    GridBagLayout是比较复杂,我用看过几遍GridBagLayout的java doc,但有些参数还是没搞明白,每次都是连试带蒙地才调整好,建议楼主看看core java中的介绍,里面讲的还是挺详细的,我现在没什么时间来研究了。
      

  4.   

    weighty设置了一样的大小,weighty在JavaDoc中这样解释的(Specifies how to distribute extra vertical space.)你这样都设置了1.0,当然试按屏幕平均分配的,可以设置0.8、0.2来按4:1比例分配比例。GridBagLayout的设置重点就在GridBagConstraints这个类上!
    主要对区域的划分主要是对Cell和Component上! 看Doc的时候注意一下这两个区分就行了!再多说一点:
    gridx、gridy/gridweith、gridheight/weightx、weighty是对Cell进行调整
    anchor、fill、ipadx、ipady是对Component进行调整
      

  5.   

    constraints.weighty = 1.0;
    这一句对第一个panel使用的时候就把所有额外的纵向空间占了,可以把这句删除,add panel1之后再加上,不知道满足了要求没有!