2013-03-20 21 views
3

我想有一個Java定時器在我的入口點:的Java定時器在GWT

Timer timer = new Timer(); 
timer.schedule(
    new TimerTask() { 
     public void run() { 
      //some code 
     } 
    } 
    , 5000); 

但是,試圖編譯這個當我: 沒有源代碼可用的java.util.Timer型;你忘記 繼承一個必需的模塊?

我能做些什麼來解決這個錯誤?

+1

可能重複[GWT - 你忘了繼承一個必需的模塊?](http://stackoverflow.com/questions/5575909/gwt-do-you-forget-to-inherit-a-required-module) – dunni 2013-03-21 21:01:11

+0

不是真的重複http://stackoverflow.com/questions/5575909/gwt-did-you-forget-to-inherit-a - 需求模塊,因爲它在Libgdx的上下文中。儘管該鏈接對於解釋錯誤發生的位置非常有用。 – 2013-03-22 00:12:21

回答

4

如果您使用Libgdx,您可以使用the libgdx Timer infrastructure安排工作,在將來運行:

Timer t = new Timer(); 
t.scheduleTask(new Timer.Task() { 
     public void run() { /* some code */ } 
    }), /* Note that libgdx uses float seconds, not integer milliseconds: */ 5); 

這種方式,你可以安排在你的平臺無關的代碼計時器。 (GWT特定的解決方案只能在你的項目的平臺依賴部分工作。)

12

在GWT中,您被限制使用所有的Util包類。

這裏是List of Classes只有你可以從util類使用。您可以使用GWT Timer class

示例(來自docs);

public void onClick(ClickEvent event) { 
    // Create a new timer that calls Window.alert(). 
    Timer t = new Timer() { //import (com.google.gwt.user.client.Timer) 
     @Override 
     public void run() { 
     Window.alert("Nifty, eh?"); 
     } 
    }; 

    // Schedule the timer to run once in 5 seconds. 
    t.schedule(5000); 
    } 
+1

請始終添加最新的文檔鏈接。 – SSR 2013-03-20 16:09:55

+0

糟糕......沒有檢查。對舊鏈接感謝。感謝編輯@SSR。 – 2013-03-20 16:11:44

+1

@亨利克這是有價值的編輯。好工作。 – 2013-10-04 06:52:41