私はサイコロをアニメーション化したい、Javaで簡単なボードゲームを作っています。だから私はこのようなサイコロの写真をフラッシュ:Java Swingで再描画した後にのみイベントをトリガーしますか?
public Timer roll_dice = new Timer(50, this);
...
public void actionPerformed(ActionEvent evt) {
if(roll_dice.getDelay() > 500){
roll_dice.setDelay(50);
roll_dice.stop();
movePiece();
}else{
roll_dice.setDelay(roll_dice.getDelay() + 50);
dice_panel.repaint(0);
}
}
}
movePiece(){
//do some more painting
}
ので、ダイはそう何回かのために乱数を表示した後、ゆっくりと数に落ち着くだろう。それが完了したら、movePiece()
メソッドに電話したいと思います。しかし、そのままでは、再描画は散発的に起こり、サイコロが実際にアニメーション化される前にmovePiece()
が呼び出されるようにすべてをねじ込みます。
誰もが、私は、最終的な再描画が発生した後にのみmovePieceを呼び出すことができますどのように任意のアイデアを持っていますか?
ペイントがいつ発生するか、ペイントが発生するかどうかを完全に制御できないため、プログラムロジックがペイントに依存しないようにする必要があります。イメージを再描画して 'repaint()'を呼び出すのではなく、プログラムの起動時にイメージダイレクトイメージをImageIconに入れて、スウィングタイマーでJLabelのアイコンを交換するのはなぜですか?遅延が十分に長くなったらタイマーを止め、ブロックしたらあなたの作品を動かしてください。 –