使用下面的代码,我想创建一个Jpanel通用组件并添加两个子组件,一个Label和一个JTextField。我将添加组件,但它们不会对齐。 (不,我不需要GridBagLayout,但我试图用GridBag做一个基本的例子,你能描述如何用GridBag做这个而不是另一个布局)。JComponent和组件的左对齐
public Component buildStatusComponent() {
// Place the components on one line //
final GridBagLayout layout = new GridBagLayout();
final GridBagConstraints constraints = new GridBagConstraints();
final JPanel group = new JPanel(layout);
constraints.anchor = GridBagConstraints.WEST;
constraints.gridx = 0;
constraints.fill = GridBagConstraints.NONE;
group.setAlignmentX(JComponent.LEFT_ALIGNMENT);
group.add(new JLabel("Messages: "), constraints);
constraints.gridx = 1;
constraints.fill = GridBagConstraints.HORIZONTAL;
group.add(this.statusArea, constraints);
return group;
}
在这个级别上面,我只是添加JPanel并水平填充。
constraints.gridy++;
constraints.fill = GridBagConstraints.HORIZONTAL;
this.add(this.buildStatusComponent(), constraints);
我们需要了解更多关于我认为的外部面板。但是如果我的怀疑是正确的,在组件上设置边界将帮助您查看布局错误的位置。 (提示:状态组件可能不会扩展以填充其“单元”,因为它没有weightx。) – PSpeed 2009-12-18 20:38:13