如何在Java GridLayout中使用边距和填充。

12

我该如何让JLabel不紧贴在框架的边缘上?当我使用GridLayout或BoxLayout时,也会遇到同样的问题。

以下是一个出现此问题的示例:

JPanel content = new JPanel();
content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
content.add(new JLabel("Hello World"));

CSS有边距和填充的概念。Java有类似的吗?

我仍然希望左对齐,但边缘和标签之间有几个像素的空间。


你的意思是,你想让它居中吗? - Mordechai
1
你很幸运,我回到了这个问题,下次请在我的答案下留言,我应该会看到你的编辑。 - Mordechai
2个回答

21

您可以为JLabel设置空的边框,以将组件从左边缘移动几个像素:

label.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0));

1

对于居中标签,请尝试以下方法:

content.add(new JLabel("Hello World", JLabel.CENTER));

如果您正在使用Box,您可以通过调用以下方法(在垂直框中)来添加空间:

content.add(Box.createVerticalStrut(height));
content.add(new JLabel("Hello World"));

或者对于水平方向:

content.add(Box.createHorizontalStrut(width));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接