教材显示,组件应赋予非0的正权值,否则组件将在容器中央挤做一团、但是weight value是随便赋值的吗?

解决方案 »

  1.   

    不是随便的.比如说如果你的总宽度增加200px,那么Layout会根据该组件的权值除以总权值,决定该组件应该在横向上增大多少px.
      

  2.   

    权值的绝对值总和并不重要,重要的是相对大小
    比如最小尺寸需要400像素的宽度才能显示组件。
    但是容器宽度为600像素。这时GridBagLayout就要确定多余的200像素如何分配了
    假如有三列,权值分别为20,40,50;
    则第一列分配(20/(20+40+50))*200;
    第二列分配(40/(20+40+50))*200
    第三列分配(50/(20+40+50))*200每一列的权值是根据这一列的最大权值确定
    如这一列有三行,权值分别为20,30,40;
    则这一列的权值为40
      

  3.   

    gridwidth不为1时就复杂一些了
    管理器先考虑girdwidth为1的列,然后再考虑gridwidth=2的列,依此迭代
      

  4.   

    这个实际上是说当你的面板的总大小变化后,里面的各个控件的大小的变化比例情况,具体你要查GridBagLayout的API
      

  5.   

    不过我建议最好不要用这个布局,特别是当你的面板的控件排列不规则的时候,因为它非常难控制,推荐不用布局,直接用JBuilder拖放。。
      

  6.   

    JBuilder的布局就是用GridBagLayout的