実行時間の長いタスクを実行する小さなアプリケーションを作成しました。ユーザーを待機させてプログレス バーだけを表示させる代わりに、アプリケーションに関する (変化する) 情報を表示したいと考えています。
そのために、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 秒間留まってから、再びフェードアウトすることです。残念ながら、アニメーションがちらつき、動きが速くなったり遅くなったりしますが、 PauseTransition
15 秒もかかりません。コードのどこが間違っていますか? Java 7 と Mac OS X で JavaFX 2.2 を使用しています。