当前位置: 首页 > 知识库问答 >
问题:

Swing Gridbag布局-对齐问题

柴飞星
2023-03-14

我有一个带有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的右侧。我对秋千很陌生。有谁能帮帮我吗?

共有1个答案

耿联
2023-03-14

添加结果的面板时忘记传递约束

createDomainPanel.add(result, gbc);
 类似资料:
  • 当使用垂直对齐的BoxLayout时,如何阻止组件随着包含JFrame的增长而扩展,从而在底部留下额外的空间?Ive尝试了不同的布局,但很快就变得凌乱了。Ive还尝试在面板底部添加胶水,但是布局管理器将胶水处理成另一个空的JPanel,仍然导致所有组件增长。有什么建议吗?

  • 8. Alignment 在弹性容器处理完内容伸缩和弹性项目的尺寸确定后,将开始处理内容对齐。 和block布局中类似,flex布局中的margin属性可以用来调整项目,但功能要更强大。 弹性项目也遵循CSS Box Alignment Level 3中定义的对齐属性,在主轴线和垂直轴线方向使用简单的基于关键字的项目对齐。 这些属性使得一些常用的对齐方式变得极其简单,比如水平、垂直居中,而这在CS

  • 水平 & 垂直居中对齐 元素居中对齐 要水平居中对齐一个元素(如 <div>), 可以使用 margin: auto;。 设置到元素的宽度将防止它溢出到容器的边缘。 元素通过指定宽度,并将两边的空外边距平均分配: div 元素是居中的 .center { margin: auto; width: 50%; border: 3px solid green; padding: 10px; } 注意:

  • 各位好,我在用 grid 做一个页面的布局,请看代码 我想实现的是一共分三列,最左边的一列是 hello1 和 hello2;中间是 3,4,5;最右侧是 6 和 7。 css 部分代码如下 现在遇到的问题是,中间和右侧的内容不顶部对齐,我想要的显示形式是 1 3 6 2 4 7 5 但实际的效果是 请问这个该怎么解决,谢谢。 如上问题所说,想知道错在哪里了

  • 我正在尝试使用JavaSwing创建一个登录表单。但我希望布局看起来更紧凑,但仍能响应。 我的项目结构 面板中的组件没有像我预期的那样工作,我希望字段靠近标签,但不要水平填充整个空间。 我的代码是: 登录面板 主要的 这就是我希望它看起来的样子(更新):

  • 我使用创建面板。 我想要面板右角的删除图标。但是,如果未将添加到面板中,删除图标将向左移动。 如何正确地做到这一点? 这是我的GridBagLayout面板设置代码 有添加组件到面板的代码