第一个程序:
import java.awt.Toolkit;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class UtilTimer {
/**
* @param args
*/
public static void main(String[] args) {
Timer timer=new Timer();
timer.schedule(new TimerTask(){
@Override
public void run() {
System.out.println("the time is:"+new Date());
Toolkit.getDefaultToolkit().beep();
}},0,2000);
}
}
第二个程序:
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.Timer;
public class SwingTimer {
/**
* @param args
*/
public static void main(String[] args) {
Timer timer=new Timer(2000,new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("the time is;"+new Date());
Toolkit.getDefaultToolkit().beep();
}
});
while(true){
timer.start();
}
}
}
两个Timer类都可以实现每隔2秒钟在控制台打印当前时间,并且“咚”一声。
那么这两个Timer类有什么区别呢?分别在什么典型场合使用各自呢?求指导...
------解决思路----------------------
在 1.3 版本中,向 Java 平台添加了另一个 Timer 类:java.util.Timer。该类和 javax.swing.Timer 的基本功能相同,但是 java.util.Timer 更常用,功能更多。javax.swing.Timer 有两个特征,它们可以让使用 GUI 更方便。首先,其事件处理程序都是 GUI 程序员所熟悉的,并且可以更简单地处理事件指派线程。第二,其自动线程共享意味着不必采取特殊步骤来避免生成过多线程。相反,计时器使用同一个线程让光标闪烁、使工具提示显示等等。
通过查看 The Java Tutorial 中的 How to Use Timers 一节,可以找到使用计时器的更详细的文档和几个示例。有关在此 Timer 类和 java.util.Timer 之间进行选择的更多示例和帮助信息,请参阅 The Swing Connection 中的 Using Timers in Swing Applications 一文。
楼主看api文档吧。这是里面的话。
下面是Swing Timers的讲解。
http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html