如何阻止BorderLayout的中心占据东西方?

时间:2015-08-20 15:52:23

标签: java swing layout-manager border-layout

我有一个程序,其中我使用BorderLayout并且EASTWEST位置未填充,但CENTER就是。{1}}。因此,中心组件延伸到东西组件所在的空间。

我该怎样防止这种情况?我知道我可以在东西两个位置使用空白JPanel,但这看起来很糟糕。

3 个答案:

答案 0 :(得分:2)

如果您想要的是中心面板周围的空白区域,您可以为其添加边框:

panel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10);

答案 1 :(得分:1)

你说:

  

我知道我可以在东西两个位置使用空白JPanel,但这看起来很糟糕。

为什么那个hacky?你怎么控制可见空间的大小?如果你只想让它变成一个狭窄的(例如10像素)空白区怎么办?如果你希望它是100像素怎么办?如果您希望边框根据相应框架的大小增大和缩小怎么办?

在那里添加某种组件(它不一定是JPanel,虽然这不是一个糟糕的选择)允许你更有效地指定它的大小,并且这样做没有任何内在错误

答案 2 :(得分:1)

您需要的是Box.Filler。它用于创建空组件以填充区域。 见https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html#filler