我有以下代码:
public Frame() {
super();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(0, 3));
for (int i = 0; i < 30; i++) {
add(new JLabel("label"));
}
}
所有这一切都很好,直到您开始垂直调整框架大小
由于某种原因,它会在标签上方和下方产生间隙,在放大框架时会再次增大和缩小。
最值得注意的是,当您将框架的下侧向下拉时,可以看到上下移动的标签的顶线。
澄清,these are the problem areas 红色的两个区域也被填充,而我希望它们是空的。
知道如何摆脱这个空白区域吗? 感谢
答案 0 :(得分:2)
由于某种原因,它会在标签上方和下方产生间隙,在放大框架时会再次增大和缩小。
打包框架时,使用GridLayout时,组件将以其首选大小显示。
但是,当您增加框架的大小时,GridLayout会尝试填充所有可用空间。这意味着所有组件都会增长。
我不确定在横向调整大小时这是否相同,至少它不是那么明显。
这并不明显,因为您只有一列标签。将GridLayout更改为具有多个列以查看发生的情况。
如何解决这个问题?
使用其他布局管理器。可能是BoxLayout
或GridBagLayout
。有关更多信息和示例,请参阅Layout Managers上的Swing教程。