Java swing GridLayout调整cellize

时间:2014-05-16 15:45:48

标签: java swing grid-layout

使用GridLayout(4,4)启动JPanel后,我在每个网格单元格中插入一个JLabel(并将imageicon附加到它上面),大小为(150,150)。

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

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

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

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

感谢

1 个答案:

答案 0 :(得分:1)

不幸的是,您没有说出您希望网格看起来像什么。我假设你不希望细胞彼此相距太远。

GridLayout documentation表示......

  

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

如果缩小每个JLabel的大小(即每个矩形中的组件),那么就这样做。缩小组件的大小,而不是矩形的大小。网格不关心组件是否小到可以填充整个矩形。将组件添加到网格 1 时,网格会尝试将组件大小设置为最适合可用空间。但如果您以后更改标签大小,网格无关紧要。

您可能想要的是更改整个网格的大小:如果将网格大小设置为400乘以400,则应将其均匀地划分为所有4行和4列,因此您可以获得大小为100乘100的矩形。所有标签都应自动调整大小。


1 可能它不是在添加标签时,而是在validating the container时,但我不知道所有关于布局如何以及何时做魔术的内部细节。