2013-11-27 27 views
1

我想知道如果有人能夠看到我在這裏做錯了什麼。我正在嘗試創建一個計時器,它將每秒鐘將計數變量加1並在控制檯上打印出來。但是,它會打印第一個數字,然後停止,我不確定發生了什麼。Java util定時器不能正常工作

import java.util.Timer; 
import java.util.TimerTask; 


public class TimerTest { 

    private Timer timer; 
    public int count = 0; 

    public TimerTest() { 
     timer = new Timer(); 
     timer.schedule(new TimerListener(), 1000); 
    } 

    private class TimerListener extends TimerTask { 

     @Override 
     public void run() { 
      count++; 
      System.out.println(count); 
     } 

    } 

    public static void main(String[] args) { 
     new TimerTest(); 
    } 
} 

我確實發現了類似的其他問題,但他們的解決方案都沒有對結果做任何改變。

謝謝。

回答

5

您的調度只運行一次任務。您需要添加一個參數以使用方法schedule(TimerTask task, long delay, long period)

timer.schedule(new TimerListener(), 1000, 1000); 
+0

非常感謝Keppil。工作:D –

+1

@MichaelShort,作爲一個新用戶,我想我們應該通知你。如果您認爲該答案符合您的問題,請將答案標記爲已接受。在upvote-downvote圖標 – Sage

+0

@Michael正下方的左側有一個刻度標記,您可以引用Timer.java類以瞭解更多關於schedule(...)重載方法的信息。 – Kishore