与标题建议一样,我想调整网格组件的大小,这样如果网格内部有一个小组件,它将删除多余的空间。
以下是目前的示例:
相反它应该是这样的:
我正在使用GridLayout
。看起来有点像:
grid = new JPanel(new GridLayout(1, 3));
grid.add(JPanel1);
grid.add(Jpanel2);
grid.add(JTextField);`
有什么想法吗?
编辑:我通过使用MigLayout(感谢@Blip)并覆盖首选大小来解决问题。然后Blip告诉我不要覆盖,而是使用MigLayout的附加功能来获得相同的结果。虽然这样可行,但我还决定改变JTextField的高度。否则我会使用其他解决方案。但感谢大家的帮助!
答案 0 :(得分:1)
所有其他的将JTextField缩小到1像素宽。
不,他们没有。首先,请确保使用以下代码创建文本字段:
JTextField textField = new JTextField(10);
该数字将在所有文本字段中确定合理的首选大小。
然后,您可以使用FlowLayout
,它始终尊重首选尺寸。
或者您可以使用GridBagLayout
,它更灵活,但使用起来也更复杂。是的,当你使用GridBagLayout时,如果你将名气缩小得太小,那么组件将以最小尺寸显示,这可能是文本字段的几个像素。
关键是使用frame.pack(),因此组件以其首选大小显示,因此您不必担心组件缩小。
阅读Layout Managers上的Swing教程以获取更多信息。