【发布时间】:2016-12-14 02:14:45
【问题描述】:
我想在 JLabel 之间创建一个垂直空间。这是我的代码:
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 已完成以将 JLabels 定位到面板的左侧。根据这一点,我想将一些 JLabels 定位在中心(因此水平移动),FlowLayout 是否有另一种方法来做到这一点?
谢谢。
【问题讨论】:
-
流式布局不是最好的选择。如果您的需求很简单,请尝试 BoxLayout 或 GridLayout。 (我还建议你用
Swing标记这篇文章,让合适的人看到它。) -
FlowLayout的通常情况是将组件排成一行。使用GridBagLayout进行最大程度的定制。您也可以使用一些非标准布局。例如MIG Layout 或Form Layout