2017-05-18 14 views
-2

文字をアニメーション化しようとしていますが、sleep()をどうやって取得するのかはよく分かりません。アイデアは、アニメーションが終了するまで毎秒イメージが変化するということです。今のところ、スペースバーを押すと、アニメーションが実行されます。Java待機で問題が発生しました

Image[] imageArray = new Image[4]; 
imageArray[0] = getImage(getDocumentBase(), "Death1.png"); 
imageArray[1] = getImage(getDocumentBase(), "Death2.png"); 
imageArray[2] = getImage(getDocumentBase(), "Death3.png"); 
imageArray[3] = getImage(getDocumentBase(), "Death4.png"); 

for(int i = 1; i <= 4; i++) { //Or any Loops 
    try { 
     //player is just where the image is stored & painted 
     player = imageArray[i]; 
     repaint(); 
     Thread.sleep(1000); 
    } 
    catch (InterruptedException ex) {} 
} 
+0

十分に説明していない場合は、教えてください!私はこれに新しいです:-) –

+3

"Swing"と "Thread.sleep"の検索を行うことが本当に必要なのでしょうか?おそらく[Concurrency in Swing](https ://docs.oracle.com/javase/tutorial/uiswing/concurrency/)と[Swing Timersの使用方法](https://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html)を参照してください。この質問は1日に6回尋ねられ、答えはほとんど常に同じです – MadProgrammer

+0

[サンプル検索](http://stackoverflow.com/search?q=%5Bjava%5D+%5Bswing%5D+thread.sleep) – MadProgrammer

答えて

0

はすぐにコンポーネントを再描画しませんrepaintを呼び出す:ここでは私がこれまで持っているものです。これは、イベントキューに追加されるイベントを生成するだけです。イベントキューは後で処理されます。

スリーピングとは、イベントキューが処理されるポイントまで進まないことを意味します。再描画イベントを4回追加するだけです。

おそらく、新しいスレッドを作成したいと思うでしょう。このスレッドはコードを実行し、メインスレッドとは独立しています。メインスレッドはすべてのイベントを処理でき、スレッドはスリープ状態になります。

+0

申し訳ありませんが、私はこれを試してみましょう! –

関連する問題