gpt4 book ai didi

Java swing GridLayout 调整单元格大小

转载 作者:太空宇宙 更新时间:2023-11-04 06:48:10 26 4
gpt4 key购买 nike

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

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

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

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

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

谢谢

最佳答案

不幸的是,您没有说出您期望的网格是什么样子。我假设您不希望单元格彼此相距太远。

GridLayout documentation指出...

The container is divided into equal-sized rectangles, and one component is placed in each rectangle.

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

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

<小时/>

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

关于Java swing GridLayout 调整单元格大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23699466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com