【发布时间】:2014-09-26 20:48:13
【问题描述】:
这是具有 BorderLayout 的面板通常的外观:
我不想在中间放任何东西,所以东西用空格隔开。如何让它们连接起来?如果没有办法,我应该改用什么其他布局? 谢谢
【问题讨论】:
-
有什么原因你不能使用像 west 和 center 这样的东西,而不能使用east?听起来它会得到你想要的布局。
标签: java swing border-layout
这是具有 BorderLayout 的面板通常的外观:
我不想在中间放任何东西,所以东西用空格隔开。如何让它们连接起来?如果没有办法,我应该改用什么其他布局? 谢谢
【问题讨论】:
标签: java swing border-layout
您可以简单地在所需部分添加图形元素并忽略其他部分:
add(element1, BorderLayout.WEST);
add(element2, BorderLayout.EAST);
如果你想在中心有一个空间,请明确添加:
add(new JLabel(" "), BorderLayout.CENTER);
【讨论】:
您可以在不使用 BorderLayout 的情况下通过多种方式设置样式,这是我推荐的,因为 BorderLayout 的设计考虑了内容的中心。
在没有中心的情况下呈现西方和东方最简单的是GridLayout,有 1 行和 2 列。
如果您仍然想要包含北和南,则可以将 GridLayout 从上方放置到 1 列 x 3 行 GridLayout 的第二行。
如果您想要更多的复杂性和灵活性,您可以使用GridBagLayout,它类似于超级 GridLayout。然后,您可以设置 2 列、3 行设置,并在各自的行中指定 North 和 South 2 列,然后 East 和 West 获得自己的单个单元格。
【讨论】:
将面板添加到边框布局的中心位置,使用 2 列的网格布局,然后将东西向内容添加到面板。
如果您希望西方和东方都在宽度方面占据显示器的一半,则此方法很好。
类似于 Compass 的回答。
【讨论】: