【问题标题】:Java swing GridLayout adjusting cellsizeJava swing GridLayout 调整单元格大小
【发布时间】:2014-05-16 15:45:47
【问题描述】:

使用 GridLayout(4,4) 启动 JPanel 后,我在每个大小为 (150,150) 的网格单元中插入一个 JLabel(并为其附加一个图像图标)。

当我将 JLabel 的大小调整为 (100,100) 时,图像会被裁剪(这对我来说非常好),但我得到了一个看起来很奇怪的网格(最后添加了图像)。

如果这有帮助:我实际上并没有调整窗口大小,我只需要确保 JLabel 的大小始终设置为 (100,100),不管原始图像大小是多少。

之前: http://postimg.org/image/iolyeb8e7/

之后: http://postimg.org/image/5j6g87ein/

谢谢

【问题讨论】:

    标签: java swing grid-layout


    【解决方案1】:

    很遗憾,您没有说出您期望网格的外观。我假设您不希望单元格彼此相距如此之远。

    GridLayout documentation 声明...

    容器被分成大小相等的矩形,每个矩形中放置一个组件。

    如果您缩小每个 JLabel(即每个矩形中的组件)的大小,您只需这样做。您缩小了组件的大小,而不是矩形的大小。网格不关心组件是否太小而无法填充整个矩形。在您将组件添加到网格1 的那一刻,网格会尝试将组件大小设置为最适合可用空间。但是,如果您稍后更改标签大小,则网格不会在意。

    您可能想要更改整个网格的大小:如果您将网格大小设置为 400 x 400,它应该将其平均划分为所有 4 行和 4 列,因此您会得到大小为 100 x 100 的矩形。所有标签都应自动调整大小。


    1 可能不完全是在添加标签时,而是在 validating the container 时,但我不知道有关布局如何以及何时发挥作用的所有内部细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      相关资源
      最近更新 更多