gpt4 book ai didi

java - 如果我已经有一个带有 ImageIcon 的 JLabel,如果我更改 ImageIcon 然后打包框架,它不会打包

转载 作者:行者123 更新时间:2023-12-02 02:52:11 25 4
gpt4 key购买 nike

这是我的代码:

/**
* Opens file and gives a warning if non image.
*/
private void openFile() {
final int returnVal = myFileChooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
myFile = myFileChooser.getSelectedFile();
try {
myImage = PixelImage.load(myFile);
myImageIcon = new ImageIcon(myImage);
myImageLabel.setIcon(myImageIcon);

this.pack();
this.setMinimumSize(this.getSize());
enableButtons();
} catch (final IOException exception) {
JOptionPane.showMessageDialog(null,
"The selected file did not contain an image!");
}
} else {
System.out.println("ERROR FILE"); //PLACEHOLDER
}
}

所以我想做的是:

  1. 加载 PixelImage (myImage)
  2. 将 ImageIcon (myImageIcon) 设置为 PixelImage (myImage)
  3. 将 JLabel (myImageLabel) 设置为 ImageIcon (myImageIcon)
  4. 将框架打包到图像周围的适当尺寸,并设置框架的最小尺寸以满足加载图像后框架的尺寸。

这四个步骤正常工作,除非我尝试加载新图像。我遇到的问题是,当我在现有图像之上加载新图像时,它会删除旧图像(按预期),然后当它将框架包装在新图像周围(例如较小的图像)时,它会保留框架最小尺寸要求基于旧图像,而不是设置最小尺寸(this.setMinimumSize(this.getSize()))。如果我加载较小的图像,我希望调整框架大小以满足这些较小图像的高度和宽度,而不是基于旧图像。

最佳答案

也许可以尝试这样的事情:

this.setMinimumSize(null);
this.pack();
this.setMinimumSize(this.getSize());

那么 pack() 方法不限制之前的最小值?如果 null 不起作用,则使用维度 (0, 0)。

关于java - 如果我已经有一个带有 ImageIcon 的 JLabel,如果我更改 ImageIcon 然后打包框架,它不会打包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43642844/

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