0
我是Java初学者,在我的游戏JavaFX控制器中,我有以下代码片段。这是一个按钮,启动一个计时器,做一些事情,每5秒,它工作完全正常:用户单击按钮时,如何更改定时器的KeyFrame持续时间?
double seconds = 5.0;
@FXML
void unlockBtn(ActionEvent event) {
Timeline timer = new Timeline(new KeyFrame(Duration.seconds(seconds), new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("this is called every"+seconds+"seconds on UI thread");
}
}));
timer.setCycleCount(Timeline.INDEFINITE);
timer.play();
}
然后我也有一个按钮,改变“秒”变量,它的代码如下所示:
@FXML
void upgradeSecondsBtn(ActionEvent event) {
seconds = 2.0;
}
它应该做什么:它应该更新计时器,以便它现在执行的所有事情都是2秒而不是5秒。显然,这是行不通的。
如何使它改变点击按钮时定时器的速率?
是的,它工作得很好。谢谢你的帮助! – 4242