【问题标题】:Swing GridBagLayout - Alignment issueSwing GridBagLayout - 对齐问题
【发布时间】: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
  • 为了尽快获得更好的帮助,请发布MCVE(最小完整可验证示例)或SSCCE(简短、自包含、正确示例)。
  • 谢谢@DanGetz。这是我犯过的最愚蠢的错误之一。

标签: java swing alignment layout-manager gridbaglayout


【解决方案1】:

添加results 面板时忘记传递约束

createDomainPanel.add(result, gbc);

【讨论】:

  • 我现在只是觉得很傻。不敢相信我没有看到。
猜你喜欢
  • 2021-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
相关资源
最近更新 更多