我有一个流程布局面板,里面有一个文本字段。虽然文本字段没有那么宽,但我想在下一行放置组件。如何用空盒子填满剩余的空间?
如果您需要对组件的布局方式进行更具确定性的控制,则应考虑使用不同的布局管理器,如BoxLayout、GridLayout或GridBagLayout。您可以诱使FlowLayout按自己的意愿进行操作,但如果用户调整窗口大小,会发生什么?或者在操作系统级别更改字体DPI?不要将组件放在不同的行上,这是将虚拟组件放入FlowLayout的副作用,而是考虑使用内置了这些概念的布局管理器(例如GridBagConstraints.gridy
)更明确地表达上面/下面的关系。
用空JPanel
:填充
new JPanel();
这里不需要过于复杂。这个简单的解决方案有效(至少对我来说是这样):
panelObject.setLayout(new FlowLayout(FlowLayout.LEADING));
这将在具有从左到右默认读取方向(称为方向)的计算机上向左刷新组件,而在具有从右读取方向的计算机上则相反。因此,它很适合国际化。如果希望所有计算机上的组件都位于左侧(而空白区域位于右侧),请使用new FlowLayout(FlowLayout.LEFT)
。
感谢@nIcE cOw在问题下方的评论中提出了这个解决方案,并允许我将其作为答案发布。