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() デバッグ ステートメントを試しました)。描画される画像を正常に変更するにはどうすればよいですか?