java.util.Timer类和javax.swing.Timer类有什么区别?

时间:2023-01-26 20:19:37
第一个程序:

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类有什么区别呢?分别在什么典型场合使用各自呢?求指导...

2 个解决方案

#1


在 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

#2


楼主的程序给力

#1


在 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

#2


楼主的程序给力