[英]Repainting a BufferedImage in Java does not change contents of panel
[英]Java - Change BufferedImage File
我有一个扩展JPanel并实现MouseListener的Java类,并尝试复制JButton的一些基本功能,但要复制一些加载的图像,以使事情变得更漂亮。 这是我的代码的一部分。
一个类字段:
private BufferedImage image;
在构造函数中,我有:
try {
image = ImageIO.read(new File("image/firstImage.png"));
} catch (IOException ex) {
}
然后,我重写paintComponent来绘制图像:
public void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, null);
}
而且效果很好! 万岁。 但是我还希望能够更改绘制到屏幕上的图像。 这不起作用:
public void mousePressed(MouseEvent arg0) {
try {
image = ImageIO.read(new File("image/newImage.png"));
} catch (IOException ex) {
}
}
mousePressed()肯定会成功触发(尝试了System.out.println()调试语句),那么我该怎么做才能成功更改正在绘制的图像?
您的图像已更新,但窗口未再次绘制。 尝试调用repaint();
之后。 应该会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.