一、Robot,Thread和Timer

import java.awt.AWTException;import java.awt.Robot;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class Text1 {public static void main(String[] args) throws AWTException {//延时方法一Robot robot = new Robot();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");System.out.println("延时前 :"+dateFormat.format(new Date()));robot.delay(2000);System.out.println("延时后 :"+dateFormat.format(new Date()));//延时方法二try {Thread.sleep(3000);System.out.println("Thread延时后 :"+dateFormat.format(new Date()));} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}//延时方法三Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {System.out.print("----时间: "+dateFormat.format(new Date()));this.cancel();}}, 2000);System.out.print("三秒后打印时间:");}}

打印:

二、补充:

关于方法二的 this.cancel(); 解释:

取消此计时器任务。如果任务已计划一次执行,但尚未运行,或尚未计划,则它将永远不会运行。如果任务已计划重复执行,则它将永远不会再次运行。(如果此调用发生时任务正在运行,则任务将运行到完成,但不会再次运行。)

请注意,从重复计时器任务的run方法中调用此方法绝对保证计时器任务不会再次运行。

此方法可以重复调用;第二次和随后的呼叫没有效果。

返回:如果此任务计划为一次性执行但尚未运行,或此任务计划重复执行,则返回true。如果任务计划为一次执行且已运行,或任务从未计划,或任务已取消,则返回false。(粗略地说,如果该方法阻止一个或多个计划执行发生,则返回true。)