我正在为我的Java类开发一个文本冒险游戏,并且在尝试计时打印声明时,我遇到了一个问题。
基本上45秒后我想要一个打印声明显示,在这种情况下,print语句会提醒用户他们需要让他们的虚拟狗出去......
我还需要在用户提供正确的命令后重置计时器。
答案 0 :(得分:7)
import java.util.Timer;
import java.util.TimerTask;
...
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("delayed hello world");
}
}, 45000);
要取消定时器,要么使用TimerTask变量来记住任务,然后调用其cancel()方法,要么使用timer.purge()
;后者取消了计时器上的所有任务。要重新安排任务,请重复。
您可能希望将来进行更多高级操作,因此阅读Timer API文档是一个好主意。
答案 1 :(得分:2)
Timer timer = new Timer();
timer.schedule(new TimerTask(){
public void run() {
System.out.println(" let the virtual dog out ");
}
}, 45000);
答案 2 :(得分:2)
尝试在新线程中运行。
new Thread(new Runnable()
{
public void run()
{
Thread.sleep(45000);
System.out.println("My message");
}
})
.run();
这应该有用。
答案 3 :(得分:0)
告诉线程休眠45秒,这里有一个教程:
http://docs.oracle.com/javase/tutorial/essential/concurrency/sleep.html
答案 4 :(得分:0)
告诉主线程睡眠可能不太理想,因为它会导致程序基本停止。使用另一个线程(需要做一点多线程)来计时输出,并检查是否应该在45秒后打印消息。