0

実行時間の長いタスクを実行する小さなアプリケーションを作成しました。ユーザーを待機させてプログレス バーだけを表示させる代わりに、アプリケーションに関する (変化する) 情報を表示したいと考えています。

そのために、extended のコンストラクター内に次のコードを記述しましたPane

FadeTransition fadeOutTransition = new FadeTransition(Duration.millis(1000), this);
fadeOutTransition.setFromValue(0.8);
fadeOutTransition.setToValue(0.0);

同様にfadeInTransition. そしてさらに...

SequentialTransition seqTransition = new SequentialTransition (
      new Transition() {
         { setInterpolator(Interpolator.DISCRETE);
           setCycleDuration(Duration.seconds(1)); }

           protected void interpolate(double frac) {
               int nextElement = (int) ((explenations.size() - 1) * Math.random());

               Explenation explenation = explenations.get(nextElement);
               questionLabel.setText(explenation.getQuestion());
               answerLabel.setText(explenation.getAnswer());
           }
       },
       fadeInTransition,
       new PauseTransition(Duration.seconds(15)),
       fadeOutTransition
);

私が望むのは、テキストがフェードインし、そこに約 15 秒間留まってから、再びフェードアウトすることです。残念ながら、アニメーションがちらつき、動きが速くなったり遅くなったりしますが、 PauseTransition15 秒もかかりません。コードのどこが間違っていますか? Java 7 と Mac OS X で JavaFX 2.2 を使用しています。

4

1 に答える 1