0

我有一个扩展 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() 调试语句)所以我必须做什么才能成功更改正在绘制的图像?

4

1 回答 1

1

您的图像已更新,但窗口未再次绘制。之后尝试打电话repaint();。它应该有帮助。

于 2011-03-02T13:27:34.330 回答