2011-03-02 34 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();。它應該有所幫助。