我有一个程序,其中我使用BorderLayout
并且EAST
和WEST
位置未填充,但CENTER
就是。{1}}。因此,中心组件延伸到东西组件所在的空间。
我该怎样防止这种情况?我知道我可以在东西两个位置使用空白JPanel
,但这看起来很糟糕。
答案 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