我编写了一个小应用程序来执行一些长时间运行的任务。我不想让用户等待并只看到一个进度条,而是想显示一些关于应用程序的(变化的)信息。
为此,我在扩展的构造函数中编写了以下代码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 秒!代码有什么问题?我在 Mac OS X 上使用 Java 7 和 JavaFX 2.2。