Java 延时常见的几种方法
1、 用Thread就不会iu无法终止 new Thread(new Runnable() { public void run() { while (true) { test(); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } private void test() { // TODO Auto-generated method stub } public Runnable start() { // TODO Auto-generated method stub return null; } }.start()); 2、 或者用现成的 javax.swing.Timer timer = new javax.swing.Timer(500, new ActionListener() { public void actionPerformed(ActionEvent e) { repaint(); } }; timer.start(); 3、下面这个方法测试过可以用 java非线程延时 import java.awt.Robot; import java.util.Date; public class test { public static void main(String[] args) throws Exception{ Robot r = new Robot(); System.out.println( "延时前:"+new Date().toString() ); r.delay( 2000 ); System.out.println( "延时后:"+new Date().toString() ); } } 4、 用这下面的TimeTask类(指定延时) java里面的sleep()并不能精确定时,TimeTask可以:例下面的小程序: import java.util.*; public class test { public static void main(String[] args) { Timer timer = new Timer();// 实例化Timer类 timer.schedule(new TimerTask() { public void run() { System.out.println("退出"); this.cancel(); } }, 5000);// 这里百毫秒 System.out.println("本程序存在5秒后自动退出"); } }