【发布时间】:2015-10-18 16:00:50
【问题描述】:
我正在创建一个简单的 java 程序来加载图像并放大/缩小图像。 到目前为止,我已经能够加载图片并对其进行缩放。但是在绘制缩小的图像时,我仍然可以在 JPanel 上看到之前的图像。
图片加载代码
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(new FileNameExtensionFilter("Images(jpg,png,gif)", "jpg","png","gif"));
int opt = fileChooser.showOpenDialog(this);
if(opt == JFileChooser.APPROVE_OPTION){
String filePath = fileChooser.getSelectedFile().getAbsolutePath();
try {
bufImage = ImageIO.read(fileChooser.getSelectedFile());
} catch (IOException ex) {
Logger.getLogger(ImageZoom.class.getName()).log(Level.SEVERE, null, ex);
}
image = new ImageIcon(filePath);
imgWidth = image.getIconWidth();
imgHeight = image.getIconHeight();
imagePanel.getGraphics().drawImage(image.getImage(), 0, 100, image.getIconWidth(), image.getIconHeight(), imagePanel);
}
放大代码
double scale_factor = 1.5;
imagePanel.getGraphics().drawImage(image.getImage(), 0, 100, (int)(imgWidth*=scale_factor), (int)(imgHeight*=scale_factor), imagePanel);
缩小代码
double scale_factor = 0.5;
imagePanel.getGraphics().drawImage(image.getImage(), 0, 100, (int)(imgWidth*=scale_factor), (int)(imgHeight*=scale_factor), imagePanel);
有人可以建议一种仅在面板上显示调整大小的图像的方法吗?
这就是缩小的样子。打开新图片时也会出现同样的问题。
我尝试重新粉刷面板,但一切都消失了。
【问题讨论】:
-
@LuxxMiner 试过了。面板上没有显示任何内容。我只是得到一个空窗口。