java - 框架和组件之间如何留有间隙?

标签 java swing awt jlabel layout-manager

我正在尝试练习我的 GUI,但在组件和框架之间放置间隙时遇到了麻烦。 enter image description here

上面的图片是我目前所拥有的。但我真的想在框架左侧和“label1”之间留出一个间隙。

private void initialize() {
    frame = new JFrame();
    frame.setTitle("WINDOW");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(500, 300);

    panel = new JPanel();
    panel.setLayout(new BorderLayout());

    bottomPanel = new JPanel();
    bottomPanel.setLayout(new GridLayout(1, 5));
    l1 = new JLabel("Label1");
    l2 = new JLabel("Label2");
    l3 = new JLabel("Label3");
    l4 = new JLabel("Label4");
    l5 = new JLabel("Label5");
    bottomPanel.add(l1);
    bottomPanel.add(l2);
    bottomPanel.add(l3);
    bottomPanel.add(l4);
    bottomPanel.add(l5);

    panel.add(bottomPanel, BorderLayout.SOUTH);
    frame.add(panel);
}

以上是我的代码的一部分。我尝试这样做: BottomPanel.setLayout(new GridLayout(1, 5, -20, 0)); 放置一些水平间隙,但这只会增加组件之间的间隙。这根本没有将“label1”移离框架。还有其他方法可以做到这一点吗?我对 Java 很陌生,所以我不太了解其他技巧。我将不胜感激任何帮助!谢谢!

最佳答案

其他答案都是胡说八道,在调整 GUI 大小时不会达到预期的效果。而是使用:

JLabel.setHorizontalAlignment(SwingConstants.CENTER);

通过将 JLabel 中的文本居中,并结合 GridLayout 将组件拉伸(stretch)到单元格的整个宽度,每个标签两侧的空间将与GUI可以允许。例如。这是 GUI 尺寸最小时的效果。

enter image description here

当拉宽时:

enter image description here

(添加红色边框以显示每个标签的边界。)

关于java - 框架和组件之间如何留有间隙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60624660/

相关文章:

java - JTable 中的乘法值

java - 我的自定义 JDialog 出现,但为空

Java:将 MouseListener 添加到自定义 JComponent

java - 按下按钮时渲染矩形时遇到问题

java 运算符 `+` 和 `StringBuilder.append`

java - 使用线程池的客户端/服务器连接?

Java 2D,在 X 和 Y 轴上具有相同数量的翻译会导致不同的结果

java - 将饼图设置为 JLabel 而不是新框架

java 具有相同的类名和包名

java - 法语拼写检查 API