现在的位置: 首页 > 综合 > 正文

java Timer

2019年03月24日 ⁄ 综合 ⁄ 共 1251字 ⁄ 字号 评论关闭

来自http://www.cnblogs.com/lazygunner/archive/2011/07/01/2095891.html

     java 中的Timer有两种,一种是在java.swing.Timer包中的,另一种是在java.util.Timer包中的。

  一.swing Timer

      swing Timer 较 util Timer使用更具体一些,而后者更通用。由它在的包就可以看出,其实swing Timer是针对GUI相关任务的,所以对于GUI相关的程序还是比较建议使用swing Timer。而且对于util来说,swing Timer给人的感觉还是简单。

1.构造函数

  Timer(int delay, ActionListener listener)

  delay即每次timer执行相应函数的间隔,英文文档中用了fire an action,很有感觉啊。单位为微妙(milliseconds)。

  listener为监听器,可以为空。这个就不在这说了,后面看代码实现吧。

  2.方法

  貌似挺多的,就先不在这一一说明了,以后用到了,再来补充吧,先把觉着有用的写下来。

      setInitialDelay(int initialDelay) -- 设置初始的delay值,也就是在timer启动后,到第一次fire action之间的值,后面的间隔当然就都是delay了。

  setDelay(int delay) -- 这个就是在运行中可以设置,delay的值了。

  与前两者相应的就是getDelay()和getInitialDelay()。

  setRepeats(boolean flag) -- 如果flag为false,则timer只执行一次action。

  3.例子代码

import javax.swing.Timer;
 import java.awt.event.*;

 public class SwingTimer {
    
    private static int delay = 1000;
    private static int initialDelay = 5000;
    private static int count = 0; 

    public static void main(String[] args){
        
        
        
        ActionListener listener = new ActionListener(){
            public void actionPerformed(ActionEvent arg0){
                System.out.println("count = " + count++);
            }
        };
        
        Timer timer = new Timer(delay,listener);
        timer.setInitialDelay(initialDelay);
        
        //timer.setRepeats(false);
         timer.start();
        
        for(;;){
            if(count == 5)
                timer.setDelay(500);
 //            if(count == 10)
 //                timer.setRepeats(false);
         }
    }
    
}

抱歉!评论已关闭.