【问题标题】:Java - Change BufferedImage FileJava - 更改 BufferedImage 文件
【发布时间】:2011-07-07 06:41:47
【问题描述】:

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

【问题讨论】:

    标签: java jpanel bufferedimage paintcomponent


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多