【发布时间】:2015-06-15 10:24:09
【问题描述】:
我有一个带有 JLabel、JTextField 的 JPanel 和另一个带有 JLabel 的 JPanel。
createDomainPanel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
//createDomainPanel.setSize(600, 300);
gbc.fill=GridBagConstraints.HORIZONTAL;
gbc.gridx=0;
gbc.gridy=0;
createDomainPanel.add(new JLabel("Enter the name of the domain"), gbc);
gbc.gridx=0;
gbc.gridy=1;
createDomainPanel.add(domainName, gbc);
JPanel result = new JPanel(new FlowLayout());
result.add(successMessage);
gbc.anchor=GridBagConstraints.LAST_LINE_START;
gbc.gridx=0;
gbc.gridy=2;
createDomainPanel.add(result);
最后一个 JLabel 结果在某个操作后打印成功消息。
public void actionPerformed(ActionEvent e) {
SimpleDbConnect dbc = new SimpleDbConnect();
String name = "";
if (e.getSource()==domainName){
name=e.getActionCommand();
boolean success = dbc.addDomain(name);
if (success){
successMessage.setText("Domain "+ name + " added successfully");
}
}
}
但是问题是当我得到一个成功响应时,成功消息而不是在底部出现在第一个 JLabel 的右侧。 我对 Swings 很陌生。谁能帮帮我?
【问题讨论】:
-
看来您只是忘记在
createDomainPanel.add(result)中使用您的gbc。 -
谢谢@DanGetz。这是我犯过的最愚蠢的错误之一。
标签: java swing alignment layout-manager gridbaglayout