2011-03-02 48 views
0

我有一个Java类,它扩展了JPanel并实现了MouseListener,并尝试复制JButton的一些基本功能,但使用一些加载的图像来使事情更加漂亮。这是我的一些代码片。Java - 更改BufferedImage文件

类字段:

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()调试语句),这样做我必须做的成功改变形象被绘制什么?

回答

1

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