admin管理员组

文章数量:1327843

I want to create a countdown clock in GWT but I cannot find the right function that waits for one second. I tried with Thread.Sleep() but I think it is for another purpose. Can you help me? This is my code.

    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
    }

I want to create a countdown clock in GWT but I cannot find the right function that waits for one second. I tried with Thread.Sleep() but I think it is for another purpose. Can you help me? This is my code.

    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
    }
Share Improve this question edited Jul 17, 2011 at 17:18 asked Jul 17, 2011 at 16:58 user411103user411103
Add a ment  | 

2 Answers 2

Reset to default 3

Give Timer a try (See Here).

Changing the example code real quick to something close to what you want, you'll want to buff this up for your purposes though:

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

This sounds like something in the general area of what your looking for. Note that you can use timer.cancel() to stop the timer. You'll want to tie this in with your count (when 45 hits 0).

The following snippet showing the use of the timer works too. It shows how to schedule the timer properly and how to cancel it.

 // 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().

本文标签: javaCountdown clock in GWTStack Overflow