Java Swing - 当容器被移除时缩小窗口

标签 java swing

所以我正在开发一个项目,需要我打开图像,缩放窗口以适合图像,并在删除窗口时将窗口缩小。

我将我的 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/

相关文章:

java - Android webView shouldInterceptRequest - 停止加载资源

java - 如何在我的应用程序中添加 SSL?

java - hibernate - spring/bean 映射集

Java - Selenium WebElement isDisplayed() 方法不可用

java - 使用 ArrayList 作为值填充 HashTable

java - 使用 JPanel.paintComponent() 绘制两个正方形 - 尺寸错误

java - 如何修改Swing在布局文本组件时使用的clip字符串省略号

java - 在 jCombobox 上实现自动完成

java - 高效监控 int 值

java - DefaultTableModel 的 dataVector 的克隆问题