Java 如何在框架和组件之间留有间隙?

Java 如何在框架和组件之间留有间隙?,java,swing,awt,jlabel,layout-manager,Java,Swing,Awt,Jlabel,Layout Manager,我正在尝试实践我的GUI,但在组件和框架之间设置间隙时遇到了问题。 上面的图片是我到目前为止看到的。但我真的想在框架的左侧和“label1”之间留出一个间隙 以上是我的部分代码。我试着做: setLayout(新的GridLayout(1,5,-20,0)); 放置一些水平间隙,但这只会增加组件之间的间隙。这根本没有将“label1”从框架中移开。还有别的方法吗?我对Java非常陌生,所以我对其他技巧不太了解。我将感谢任何帮助!谢谢大家! 将边框添加到面板: bottomPanel = new

我正在尝试实践我的GUI,但在组件和框架之间设置间隙时遇到了问题。

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

以上是我的部分代码。我试着做: setLayout(新的GridLayout(1,5,-20,0));
放置一些水平间隙,但这只会增加组件之间的间隙。这根本没有将“label1”从框架中移开。还有别的方法吗?我对Java非常陌生,所以我对其他技巧不太了解。我将感谢任何帮助!谢谢大家!

边框添加到面板:

bottomPanel = new JPanel();
bottomPanel.setBorder( new EmptyBorder(0, 10, 0, 0) );
阅读上Swing教程中的部分,了解有关可以创建的不同边框的更多信息。

尝试以下操作:
add(javax.swing.Box.createHorizontalStruct(10))

其他答案是在调整GUI大小时无法达到预期效果的捏造。而是使用:

JLabel.setHorizontalAlignment(SwingConstants.CENTER);
通过将文本居中放置在
JLabel
中,并结合
GridLayout
将组件拉伸到单元格的全宽,每个标签的两侧都将有GUI允许的最大空间。例如,以下是GUI处于最小大小时的效果

当伸展得更宽时:


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

创建Swing组件比仅绘制边框使用更多资源。此外,由于面板使用的是GridLayout,因此无法控制空白空间的大小,因为它将自动与网格中的其他组件大小相同。
JLabel.setHorizontalAlignment(SwingConstants.CENTER);