需要在 JavaFX 中做一个 1 分钟的倒计时。我在 Java 中搜索了倒数计时器,我试过了,但它给出了一个错误,它不在 FX 流中。stackoverflow 上有一个答案,但没有使用它。怎样成为?Thread.sleep(1000) 根本不是一个选项。
解决了一个问题:
private void startTimer() {
startTimer.play();
if(!timerActivated) {
timerWorking.play();
timerActivated = true;
for (int i = 59; i >= 0; i--) {
int finalI = i;
KeyFrame f = new KeyFrame(Duration.millis((i) * 1000),
ae -> timeCount.setText(String.valueOf(59 - finalI)));
timeline.getKeyFrames().add(f);
}
timeline.setCycleCount(1);
timeline.setOnFinished(ae -> timerWorking.stop());
timeline.play();
} else {
timerActivated = false;
startTimer();
}
}
基于此答案的变体使用
Timeline
.