2011-07-17 10 views
3

GWTでカウントダウンクロックを作成したいが、1秒間待つ正しい機能が見つからない。私はThread.Sleep()で試したが、別の目的のためだと思う。 私を助けることができますか?これは私のコードです。GWTのカウントダウンクロック

int count=45; 

    RootPanel.get("countdownLabelContainer").add(countdown); 
    for(int i=count; i>=0; i--) 
    { 
     countdown.setText(Integer.toString(i)); 
     // Place here the wait-for-one-second function 
    } 

答えて

4

Timer試し(See Here)を得ました。あなたががあなたの目的のためにこれをアップバフしたいと思うあなたが望むものに近いものに本当の迅速なサンプルコードを変更する

public class TimerExample implements EntryPoint, ClickListener { 
    int count = 45; 

    public void onModuleLoad() { 
    Button b = new Button("Click to start Clock Updating"); 
    b.addClickListener(this); 
    RootPanel.get().add(b); 
    } 

    public void onClick(Widget sender) { 
    // Create a new timer that updates the countdown every second. 
    Timer t = new Timer() { 
     public void run() { 
     countdown.setText(Integer.toString(count)); 
     count--; 
     } 
    }; 

    // Schedule the timer to run once every second, 1000 ms. 
    t.schedule(1000); 
    } 
} 

これはあなたの探しているものの一般的な領域で何かのように聞こえますために。 timer.cancel()を使用してタイマーを停止することができます。これをあなたのカウントと結びつけたいと思うでしょう(45ヒット0)。

3

見Scheduler.scheduleDeferredを使用してみてください。タイマーを正しくスケジューリングする方法と、タイマーをキャンセルする方法を示します。

// Create a new timer that updates the countdown every second. 
    Timer t = new Timer() { 
     int count = 60; //60 seconds 
     public void run() { 
     countdown.setText("Time remaining: " + Integer.toString(count) + "s."); 
     count--; 
     if(count==0) { 
      countdown.setText("Time is up!"); 
      this.cancel(); //cancel the timer -- important! 
     } 
     } 
    }; 

    // Schedule the timer to run once every second, 1000 ms. 
    t.scheduleRepeating(1000); //scheduleRepeating(), not just schedule(). 
関連する問題