Java(垂直)调整随机间隙

时间:2014-03-23 21:24:26

标签: java swing window-resize

我有以下代码:

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 红色的两个区域也被填充,而我希望它们是空的。

知道如何摆脱这个空白区域吗? 感谢

1 个答案:

答案 0 :(得分:2)

  

由于某种原因,它会在标签上方和下方产生间隙,在放大框架时会再次增大和缩小。

打包框架时,使用GridLayout时,组件将以其首选大小显示。

但是,当您增加框架的大小时,GridLayout会尝试填充所有可用空间。这意味着所有组件都会增长。

  

我不确定在横向调整大小时这是否相同,至少它不是那么明显。

这并不明显,因为您只有一列标签。将GridLayout更改为具有多个列以查看发生的情况。

  

如何解决这个问题?

使用其他布局管理器。可能是BoxLayoutGridBagLayout。有关更多信息和示例,请参阅Layout Managers上的Swing教程。