我希望有一个方法startTimer(30)
,其中参数是倒计时的秒数。我如何用Java做到这一点?
答案 0 :(得分:4)
java.util.Timer
不是一个糟糕的选择,但javax.swing.Timer
可能更方便,如example所示。
答案 1 :(得分:3)
Java 5这样做的方式如下:
void startTimer(int delaySeconds) {
Executors.newSingleThreadScheduledExecutor().schedule(
runnable,
delaySeconds,
TimeUnit.SECONDS);
}
runnable
描述了您想要做的事情。例如:
Runnable runnable = new Runnable() {
@Override public void run() {
System.out.println("Hello, world!");
}
}
答案 2 :(得分:2)
import java.awt.*;
import java.util.Timer;
import java.util.TimerTask;
public class TimerDemo {
Toolkit toolkit;
Timer timer;
public TimerDemo(int seconds) {
toolkit = Toolkit.getDefaultToolkit();
timer = new Timer();
timer.schedule(new RemindTask(), seconds * 1000);
}
class RemindTask extends TimerTask {
public void run() {
System.out.println("Time's up!");
toolkit.beep();
System.exit(0);
}
}
public static void main(String args[]) {
System.out.println("About to schedule task.");
new TimerDemo(30);
System.out.println("Task scheduled.");
}
}
那里有很多有用的链接。
答案 3 :(得分:0)
通过“Javascript is GOD”帮助提出解决方案,我这样做,在特定时间玩游戏。
public static void main(String args[]) {
boolean flag = true;
while (flag) {
new TimerDemo(30);
game();
}
}
请注意,标志变量在game()
。