如何在java中重置计时器?

时间:2015-08-20 07:11:56

标签: java timer timertask netbeans-8

private void btnGuess1ActionPerformed(java.awt.event.ActionEvent evt) {    
    Timer timer = new Timer();
    TimerTask task = new TimerTask(){
        private int i = 0;
        public void run(){
            if (i <= 20){
                lblTimer.setText("" + i++);
            }
        }
    };
    timer.cancel();
    timer.purge();
    timer = new Timer();
    timer.schedule(task, 1000);

这是我到目前为止所拥有的。当我使用按钮激活这段代码时,计时器永远不会重置。我怎样才能解决这个问题?也没有错误消息。

提前感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

timer成为您班级的成员,并在构造函数中创建它。您应该在安排新任务之前取消计时器。像这样:

 private void btnGuess1ActionPerformed(java.awt.event.ActionEvent evt) {    
    timer.cancel();
    TimerTask task = new TimerTask(){
       private int i = 0;
       public void run(){
       if (i <= 20){
         lblTimer.setText("" + i++);
      }
    }
};
timer = new Timer();
timer.scheduleAtFixedRate(task, 0, 1000);