【发布时间】:2009-12-18 18:49:02
【问题描述】:
通过以下代码,我想创建一个 Jpanel 通用组件并添加两个子组件,一个 Label 和一个 JTextField。我要添加组件,但它们没有左对齐。
(不,我不需要 GridBagLayout,但我试图用 GridBag 做一个基本示例。你能描述一下如何用 GridBag 而不是其他布局来做这个)。
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。)
标签: java swing jpanel jcomponent