4

我正在为我的 Java 类开发一个文本冒险游戏,并且在尝试对打印语句显示在控制台中进行计时时遇到了问题。

基本上在 45 秒后,我希望显示一个打印语句,在这种情况下,打印语句会提醒用户他们需要让他们的虚拟狗出去......

在用户给出正确的命令后,我还需要重置计时器。

4

5 回答 5

8
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 文档是个好主意。

于 2013-08-28T03:04:01.933 回答
2
 Timer timer = new Timer();
 timer.schedule(new TimerTask(){
    public void run() {
       System.out.println(" let the virtual dog out ");
    }
  }, 45000);
于 2013-08-28T03:05:38.547 回答
1

尝试在新线程中运行。

new Thread(new Runnable()
{
    public void run()
    {
        Thread.sleep(45000);
        System.out.println("My message");
    }
})
.run();

这应该有效。

于 2013-08-28T03:09:44.193 回答
0

只需告诉线程休眠 45 秒,这里有一个教程:

http://docs.oracle.com/javase/tutorial/essential/concurrency/sleep.html

于 2013-08-28T03:02:04.703 回答
0

告诉主线程休眠可能并不理想,因为它会导致您的程序基本上停止。使用另一个线程(需要做一点多线程)来定时输出,并检查是否应该在 45 秒后打印消息。

于 2013-08-28T03:08:44.923 回答