最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

java - Countdown clock in GWT - Stack Overflow

programmeradmin6浏览0评论

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().
发布评论

评论列表(0)

  1. 暂无评论