重新启动java中一个操作的计时器

时间:2017-08-01 09:20:00

标签: java timer timertask

我有一个按钮包括计时器,但当我再次点击按钮时,同一个计时器开始计数两次。我想每次都停止计数器并重新启动它。我怎么能这样做?

    @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);
    }

当我再次点击该按钮时,它会两次调用系统。

1 个答案:

答案 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);
}

这样你总是重启同一个计时器。