java Timer的学习笔记(一)
作为第一篇文章貌似没什么技术含量啊,没关系,反正基本也是自己看。刚学java貌似遇到的问题还都比较简单。
java 中的Timer有两种,一种是在java.swing.Timer包中的,另一种是在java.util.Timer包中的。先来说一下swing 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.例子代码
1 import javax.swing.Timer;
2 import java.awt.event.*;
3
4 public class SwingTimer {
5
6 private static int delay = 1000;
7 private static int initialDelay = 5000;
8 private static int count = 0;
9
10 public static void main(String[] args){
11
12
13
14 ActionListener listener = new ActionListener(){
15 public void actionPerformed(ActionEvent arg0){
16 System.out.println("count = " + count++);
17 }
18 };
19
20 Timer timer = new Timer(delay,listener);
21 timer.setInitialDelay(initialDelay);
22
23 //timer.setRepeats(false);
24 timer.start();
25
26 for(;;){
27 if(count == 5)
28 timer.setDelay(500);
29 // if(count == 10)
30 // timer.setRepeats(false);
31 }
32 }
33
34 }