Java 如何在框架和组件之间留有间隙?
我正在尝试实践我的GUI,但在组件和框架之间设置间隙时遇到了问题。 上面的图片是我到目前为止看到的。但我真的想在框架的左侧和“label1”之间留出一个间隙 以上是我的部分代码。我试着做: setLayout(新的GridLayout(1,5,-20,0));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
放置一些水平间隙,但这只会增加组件之间的间隙。这根本没有将“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);