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 に答える