如何使用Timer

时间:2013-07-31 14:43:07

标签: java timer

我有一个使用Netbeans的应用程序,我不知道如何在Java中使用Timer。在Winform中有一个Timer的控制框,只能拖动和使用。现在我想在about.setIcon(about4);(即GIF)执行后使用计时器1秒钟。

import javax.swing.ImageIcon;    
 int  a2 = 0, a3 = 1, a4 = 2;

 ImageIcon about2 = new ImageIcon(getClass().getResource("/2What-is-the-Game.gif")); 
  about2.getImage().flush();
  ImageIcon about3 = new ImageIcon(getClass().getResource("/3How-to-play.gif")); 
  about3.getImage().flush();
  ImageIcon about4 = new ImageIcon(getClass().getResource("/4About-end.gif")); 
  about4.getImage().flush();
  if(a2 == 0)
  {
      a2=1;
      a3=1;
  about.setIcon(about2);
  }
  else if (a3 == 1)
  {
      a3=0;
      a4=1;

      about.setIcon(about3);
  }
  else if (a4 == 1)
  {
      a4=0;
      a2=0;
      about.setIcon(about4);

  }
}   

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

在Java中,我们有几种Timer实现方式,或者更确切地说是它的用途,其中一些是 -

  • 设置特定延迟量,直到执行任务。
  • 查找两个特定事件之间的时差。

Timer类为线程提供工具,以便在后台线程中安排将来执行的任务。可以将任务安排为一次性执行,或者以固定间隔重复执行。

 public class JavaReminder {
    Timer timer;

    public JavaReminder(int seconds) {
        timer = new Timer();  //At this line a new Thread will be created
        timer.schedule(new RemindTask(), seconds*1000); //delay in milliseconds
    }

    class RemindTask extends TimerTask {

        @Override
        public void run() {
            System.out.println("ReminderTask is completed by Java timer");
            timer.cancel(); //Not necessary because we call System.exit
            //System.exit(0); //Stops the AWT thread (and everything else)
        }
    }

    public static void main(String args[]) {
        System.out.println("Java timer is about to start");
        JavaReminder reminderBeep = new JavaReminder(5);
        System.out.println("Remindertask is scheduled with Java timer.");
    }
}

从这里阅读更多内容:

答案 1 :(得分:0)

在代码中(在构造函数中?)声明java.util.Timer的实例,并使用docs中的方法配置/控制它。

import java.util.Timer;
import java.util.TimerTask;
...
private Timer t;
public class MyClass()
{
    t=new Timer(new TimerTask(){
        @Override
        public void run()
        {
           //Code to run when timer ticks.
        }
    },1000);//Run in 1000ms
}