2017-08-01 22 views
1

我有一個按鈕包含定時器,但是當我再次單擊該按鈕時,同一個定時器開始計數兩次。我想每次停止計數器並重新啓動它。我該怎麼做?重新啓動java中的一個操作的定時器

@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

你能爲你的問題添加一些代碼嗎? – pfaehlfd

+0

是的確切@pfaehlfd – sForSujit

回答

0

通過調用Timer timer = new Timer();內部handleButtonAction你創建一個新的計時器,每次點擊。

您必須聲明的方法外定時器,那麼你可以通過點擊Like按鈕重新啓動:

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

這樣,你總是重新啓動一個定時器。

+0

我很抱歉,但它繼續重複計數。 – clk

相關問題