如何在swt java中创建一个Timer

时间:2014-08-15 18:36:14

标签: java timer swt repeat

大家好我必须创建一个计时器,每2秒重复一次我的代码,你能告诉我代码吗?我不需要这个计时器上的图形。

1 个答案:

答案 0 :(得分:1)

您可以使用java.util.concurrent.ScheduledExecutorService

ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

scheduler.scheduleAtFixedRate(runnable, 2, 2, TimeUtil.SECONDS);

或者您可以使用java.util.Timer

或者使用SWT,您可以使用:

Display.getDefault().timerExec(2000, runnable);

保证runnable将在用户界面线程上执行。使用timerExec,每次运行时都必须重新安排runnable。

runnable是包含您要执行的代码的Runnable类的实例,例如在Java 8中您可以使用:

Runnable runnable = () ->
  {
    browser.refresh();

    Display.getDefault().timerExec(2000, this);
  };

for Java 7及更早版本使用:

Runnable runnable = new Runnable()
 {
   public void run()
   {
     browser.refresh();

     Display.getDefault().timerExec(2000, this);
   }
 };