2010-12-02 19 views
7

私のJFrameのオーバーライドされた関数:jPanelでアニメーションgifを表示する

@Override 
protected void paintComponent(Graphics g) { 

    BufferedImage imagePerson; 
    try { 
     imagePerson = ImageIO.read(new File("errol.gif")); 
    } catch (IOException e) { 
     imagePerson = null; 
    } 

    g.drawImage(imagePerson, i * increment, j * increment - 1, null); 
} 

どうすればgifのアニメーションが表示されるようにすることができますか?私はこれを動作させるために何時間も費やしてきましたが、役に立たなかったのです。

+5

どの解決策をとっても、実際には 'paintComponent'が呼ばれるたびに実際に画像を読み込むことは望ましくありません。その方法は**ロット**と呼ばれています。初期化時にそれらを一度ロードし、それらをクラスのインスタンス変数に格納します。 –

答えて

5

この目的でImageIconを使用できます。見てくださいherehereJPanelでアニメーションが必要な場合は、JLabelImageIcon)をパネルに追加するだけです。

+0

私はアニメーションGIFの位置をjpanelの位置を移動したいと思っています:protected void paintComponent(Graphics g){ – Yawn

+0

とその関数のjpanelにjlabelを追加する方法が見えません – Yawn

+0

ImageIconを動かすか、またはrepaintを繰り返し呼び出すTimerを設定し、paintComponentメソッドで描画するフレームとフレームを特定します。 – aioobe

関連する問題