所以我正在开发一个项目,需要我打开图像,缩放窗口以适合图像,并在删除窗口时将窗口缩小。
我将我的 Window 分解为 BorderLayout 容器,然后该容器包含一个 FlowLayout 容器,该容器最终包含我的 JLabel,并将图标设置为我想要的图像。还有一些其他容器,但它们应该不重要。
我使用 .pack 来调整窗口大小,然后将MiniiumSize 设置为 pack 设置的大小。
问题是我认为我没有正确从标签中删除图像,因此当我再次调用 pack 时,窗口保持相同的大小。
label.setIcon(null);
if (theImage != null) {
myRawImage = theImage;
label.setIcon(new ImageIcon(myRawImage));
}
myWindow.pack();
myWindow.setMinimumSize(myWindow.getSize());
这段代码正确地放大了窗口,但是如果我将 theImage 作为其他东西后将其更改为 null,窗口将保持相同的大小。
任何帮助将不胜感激。
最佳答案
不需要 setMinimumSize() 方法。让布局管理器完成其工作。
只需执行 frame.pack()
即可调整框架大小。
关于Java Swing - 当容器被移除时缩小窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40372262/