我正在尝试在文本字段旁边显示两个按钮:
我已经放弃了文本,但我真的需要两个按钮保持小,而文本字段应该随窗口扩展:
目前,我使用这种布局:
文本字段和两个按钮都在JPanel中。
//JPanel group - the container
//List<JComponent> - the conponents added to JPanel
//int[] weights - weights of components
GridBagLayout lay = new GridBagLayout();
for(int i=0,l=fields.size(); i<l; i++) {
InputDef field = fields.get(i);
GridBagConstraints c = new GridBagConstraints();
if(weights.length<i) {
c.weightx = weights[i];
}
c.fill = GridBagConstraints.HORIZONTAL;
lay.setConstraints(field.getField(), c);
}
group.setLayout(lay);
在文档中,我看到组件要水平填充它们的区域,你应该将GridBagConstraints.HORIZONTAL
设置为组件的约束。
此外,我读到你应该设置不同的GridBagConstraints#weightx
以使元素占用不同的空间。
然而,运行上面的代码并没有做任何事情 - JPanel看起来完全一样,没有任何布局管理器。