Вы можете создать PauseTransition
, который запускает ваш таймер по истечении определенного времени.
void pauseTimerForDuration(AnimationTimer timer, Duration duration) {
PauseTransition pt = new PauseTransition(duration);
pt.setOnFinished(event -> timer.start());
timer.stop();
pt.play();
}
Примечание. Используется javafx.util.Duration
, а не java.time.Duration
.
Если вам нужно что-то, что вы можете использовать повторно, тогда вы можете попробовать Timeline
.
Timeline createPauseTimerTimeline(AnimationTimer timer, Duration duration) {
return new Timeline(
new KeyFrame(Duration.ZERO, event -> timer.stop()),
new KeyFrame(duration, event -> timer.play())
);
}
Затем сохраните Timeline
где-нибудь и позвоните playFromStart()
, если хотите приостановить таймер.