【发布时间】:2017-09-24 08:48:32
【问题描述】:
这是我的代码:
/**
* 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
}
}
所以我想做什么:
- 加载 PixelImage (myImage)
- 将 ImageIcon (myImageIcon) 设置为 PixelImage (myImage)
- 将 JLabel (myImageLabel) 设置为 ImageIcon (myImageIcon)
- 将框架打包为围绕图像的适当大小,并设置框架的最小尺寸以满足加载图像后框架的尺寸。
除了我尝试加载新图像时,这四个步骤都可以正常工作。 我遇到的问题是,当我在现有图像上加载新图像时,它会擦除旧图像(如预期的那样),然后当它在新图像周围打包框架(比如较小的图像)时,它会保留帧的最小尺寸要求基于旧图像而不是设置最小尺寸 (this.setMinimumSize(this.getSize()))。如果我加载较小的图像,我希望我的框架调整大小以满足这些较小图像的高度和宽度,而不是基于旧图像。
【问题讨论】:
-
加载更大的图像时打包是否有效?
标签: java