【问题标题】:GridBagLayout component stretchedGridBagLayout 组件被拉伸
【发布时间】:2022-01-12 19:57:54
【问题描述】:

我创建了一个GridBagLayout,在其中添加了不同的组件:

private static void setMyConstraints(GridBagConstraints c, int gridx, int gridy, int anchor) {
          c.gridx = gridx;  //column
          c.gridy = gridy;  //row
          c.anchor = anchor;//position
          c.insets = new Insets(10,0,0,5);  //top left bottom right padding
          c.fill = GridBagConstraints.HORIZONTAL;
       }
setMyConstraints(constraints,0,0,GridBagConstraints.NORTH);
        panel1.add(namelabel,constraints);
        setMyConstraints(constraints,1,0,GridBagConstraints.NORTH);
        panel1.add(name,constraints);
        setMyConstraints(constraints,0,1,GridBagConstraints.NORTH);
        panel1.add(genderlabel,constraints);
        setMyConstraints(constraints,0,2,GridBagConstraints.NORTH);
        panel1.add(gender,constraints);
        setMyConstraints(constraints,1,1,GridBagConstraints.NORTH);
        panel1.add(optionlabel,constraints);
        setMyConstraints(constraints,1,2,GridBagConstraints.NORTH);
        panel1.add(option,constraints);
        setMyConstraints(constraints,0,3,GridBagConstraints.NORTH);
        panel1.add(addrlabel,constraints);
        setMyConstraints(constraints,0,4,GridBagConstraints.NORTH);
        panel1.add(addr,constraints);
        setMyConstraints(constraints,0,5,GridBagConstraints.NORTH);
        panel1.add(alabel,constraints);
        setMyConstraints(constraints,0,6,GridBagConstraints.NORTH);
        panel1.add(a,constraints);
        setMyConstraints(constraints,1,5,GridBagConstraints.NORTH);
        panel1.add(blabel,constraints);
        setMyConstraints(constraints,1,6,GridBagConstraints.NORTH);
        panel1.add(b,constraints);
        setMyConstraints(constraints,2,5,GridBagConstraints.NORTH);
        panel1.add(clabel,constraints);
        setMyConstraints(constraints,2,6,GridBagConstraints.NORTH);
        panel1.add(c,constraints);
        
        setMyConstraints(constraints,0,7,GridBagConstraints.SOUTHWEST);
        panel1.add(dOkButton,constraints);
        setMyConstraints(constraints,1,7,GridBagConstraints.SOUTHEAST);
        panel1.add(dClearButton,constraints);

每当性别的组合框被拉伸以包裹文本时,相同 x 位置的组件也会被拉伸,如果 addr. textarea 也增加 column 相同位置 x 的组件拉伸。

这是当前的输出:

ok button, a textfiled and namelabel is tretched

预期输出:

even though the component like combobox stretched or add text area increased, the other component at same x position must not stretched

【问题讨论】:

标签: java swing alignment layout-manager gridbaglayout


【解决方案1】:

第一列似乎设置为“增长”,它的权重可能设置为“1.0”。

如果所有的列权重都设置为“0.0”,它们将不会被拉伸:

gridBagLayout.columnWeights = new double[] {0.0, 0.0, 0.0, Double.MIN_VALUE};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多