来自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()和get
InitialDelay()。
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); } } }