我想在JLabels之间创建一个垂直空间。这是我的代码:
JPanel label = new JPanel(new FlowLayout(FlowLayout.LEFT));
label.add(Box.createVerticalStrut(50));
label.add(label1);
label.add(Box.createHorizontalStrut(50));
label.add(label2);
label.add(Box.createVerticalStrut(50));
label.add(label3);
label.add(Box.createHorizontalStrut(50));
label.add(label4);
我想在每个JLabel
之间保持相等的垂直空间,但是,当我调整Box.createHorizontalStrut(50)
时,它会变得奇怪吗?有谁知道为什么?完成FlowLayout以将JLabel定位在面板的左侧。根据这一点,我想将一些JLabel定位在中心(因此是水平移动),还有另一种方法可以通过FlowLayout
来实现吗?
感谢。
答案 0 :(得分:2)
我想在JLabels之间创建一个垂直空间
然后你应该使用BoxLayout
。阅读How to Use BoxLayout上的Swing教程中的部分以获取工作示例。
完成FlowLayout以将JLabel定位在面板的左侧。按照这个
然后,您可以在每个标签上使用setAlignmentX(0.0f)
。 BoxLayout然后将标签对齐到左侧。
我想将一些JLabel放在中心位置
我认为这是标签对齐的默认值(每个组件都不同),因此您不必做任何事情。但是,如果您想确保始终可以在标签上使用setAlignment(0.5f)
。