我有一个按钮包括计时器,但当我再次点击按钮时,同一个计时器开始计数两次。我想每次都停止计数器并重新启动它。我怎么能这样做?
@FXML
private void handleButtonAction(ActionEvent event) {
int cnt=0;
Timer timer=new Timer();
TimerTask task=new TimerTask() {
@Override
public void run() {
cnt++;
System.out.println("task: "+cnt);
}
};
timer.schedule(task, 0, 3000);
}
当我再次点击该按钮时,它会两次调用系统。
答案 0 :(得分:0)
通过调用Timer timer = new Timer();在handleButtonAction中,你可以在每次点击时创建一个新的Timer。
您必须在方法之外声明Timer,然后您可以通过单击按钮重新启动它:
Timer timer;
private void handleButtonAction(ActionEvent event) {
int cnt=0;
timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
cnt++;
System.out.println("task: "+cnt);
}
};
timer.schedule(task, 0, 3000);
}
这样你总是重启同一个计时器。