第1个回答 2019-09-16
JAVA中使用延迟主要有以下两种方法:
1、使用Timer类
Timer类的schedule方法可以按照时间计划执行程序。
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask timerTask = new MyTimerTask();
timer.schedule(timerTask, 10000, 10000);
}
schedule方法中需要传入一个TimerTask类型的对象,该对象需要继承并实现TimerTask类的run方法,或者以匿名内部类的方式实现run方法。schedule的第二个参数为程序第一次执行run方法的延时时间,第三个参数为执行完第一次run方法后延时循环执行run方法的时间。例如,上面的程序就是延时10s执行timerTask的run方法,执行完毕之后每隔10s执行一次run方法。
实现了run方法后就会根据schedule设置的时间计划来执行。schedule的参数也可以不要循环时间,只延时执行一次,还有多种重载的schedule方法,可以根据实际情况使用。
2、使用Thread
Thread.currentThread().sleep(10000);
使线程暂停一段时间。
第2个回答 推荐于2017-09-07
new Thread(new Runnable() {
public void run() {
while(true) {
repaint();
Thread.sleep(500);
}
}
}).start();
这样就没错误了。
要用延迟的话,不妨试试java.util.Timer().
new java.util.Timer().schedule(new TimerTask(){
public void run() {
//这里写延迟后要运行的代码
repaint();
//如果只要这个延迟一次,用cancel方法取消掉.
this.cancel();
}}, 3000);
//参考参考java帮助文挡,也可以以固定间隔连续执行.本回答被提问者采纳
第3个回答 2008-08-29
用Thread就不会iu无法终止
new Thread(new Runnable() {
public void run() {
while(true) {
repaint();
Thread.sleep(500);
}
}
}.start();
或者用现成的
javax.swing.Timer timer = new javax.swing.Timer(500, new ActionListener() {
public void actionPerformed(ActionEvent e) {
repaint();
}
};
timer.start();
第4个回答 2008-08-29
Thread.sleep(0.5 * 1000);
暂停0.5秒