Java – 没有GUI的倒数计时器
发布时间:2020-12-15 00:05:24 所属栏目:Java 来源:网络整理
导读:基本上我正在制作一个基于文本的“游戏”(不是一个游戏,更多的是一种提高基本 java技能和逻辑的方法).但是,作为其中的一部分,我希望有一个计时器.它会减少我希望从变量到0的时间.现在,我已经看到了一些使用gui执行此操作的方法,但是,有没有一种方法可以在没
基本上我正在制作一个基于文本的“游戏”(不是一个游戏,更多的是一种提高基本
java技能和逻辑的方法).但是,作为其中的一部分,我希望有一个计时器.它会减少我希望从变量到0的时间.现在,我已经看到了一些使用gui执行此操作的方法,但是,有没有一种方法可以在没有gui / jframe等的情况下执行此操作.
所以,我想知道的是.你可以在不使用gui / jframe的情况下从x到0进行倒计时.如果是这样,你会怎么做? 谢谢,一旦我有一些想法将编辑进展. 编辑 // Start timer Runnable r = new TimerEg(gameLength); new Thread(r).start(); 以上是我如何调用线程/计时器 public static void main(int count) { 如果我在TimerEg类中有这个,那么计时器符合.但是,当我在另一个线程中编译main时. 现在,我完全错过了解线程以及这将如何工作?还是有什么我想念的? 错误: constructor TimerEg in class TimerEg cannot be applied to given types; required: no arguments; found int; reason: actual and formal arguments differ in length 在线发现Runnable r = new TimerEg(gameLength); 解决方法
与GUI相同,您使用的是Timer,但是在这里使用的是java.util.Timer,而不是使用Swing Timer.详细了解
Timer API.另外看一下
TimerTask API,因为你可以将它与你的Timer一起使用.
例如: import java.util.Timer; import java.util.TimerTask; public class TimerEg { private static TimerTask myTask = null; public static void main(String[] args) { Timer timer = new Timer("My Timer",false); int count = 10; myTask = new MyTimerTask(count,new Runnable() { public void run() { System.exit(0); } }); long delay = 1000L; timer.scheduleAtFixedRate(myTask,delay,delay); } } class MyTimerTask extends TimerTask { private int count; private Runnable doWhenDone; public MyTimerTask(int count,Runnable doWhenDone) { this.count = count; this.doWhenDone = doWhenDone; } @Override public void run() { count--; System.out.println("Count is: " + count); if (count == 0) { cancel(); doWhenDone.run(); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |