【发布时间】: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
预期输出:
【问题讨论】:
-
如需更好的帮助,请edit添加minimal reproducible example。
标签: java swing alignment layout-manager gridbaglayout