简单java倒计时
我正在用java做一个学校项目,想知道如何创建计时器。 我试图构建的计时器应该从60秒开始倒计时。 请帮帮我简单java倒计时,java,multithreading,timer,countdown,Java,Multithreading,Timer,Countdown,我正在用java做一个学校项目,想知道如何创建计时器。 我试图构建的计时器应该从60秒开始倒计时。 请帮帮我 /约翰有很多方法可以做到这一点。考虑使用一个睡眠函数,在每次迭代过程中让它睡1秒,并显示剩下的秒。 < P>因为你没有提供细节,如果你不需要它精确的话,这是可行的。 for (int seconds=60 ; seconds-- ; seconds >= 0) { System.out.println(seconds); Thread.sleep(1000); }
/约翰有很多方法可以做到这一点。考虑使用一个睡眠函数,在每次迭代过程中让它睡1秒,并显示剩下的秒。 < P>因为你没有提供细节,如果你不需要它精确的话,这是可行的。
for (int seconds=60 ; seconds-- ; seconds >= 0)
{
System.out.println(seconds);
Thread.sleep(1000);
}
您可以使用:
int i = 60;
while (i>0){
System.out.println("Remaining: "i+" seconds");
try {
i--;
Thread.sleep(1000L); // 1000L = 1000ms = 1 second
}
catch (InterruptedException e) {
//I don't think you need to do anything for your particular problem
}
}
或者类似的
编辑,我知道这不是最好的选择,否则您应该创建一个新类:
正确的方法是:
然后在代码中执行以下操作:
线程线程=新线程(MyTimer) 看看,用Java倒计时很简单。假设你想倒计时10分钟,那么试试这个。
int second=60,minute=10;
int delay = 1000; //milliseconds
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
second--;
// put second and minute where you want, or print..
if (second<0) {
second=59;
minute--; // countdown one minute.
if (minute<0) {
minute=9;
}
}
}
};
new Timer(delay, taskPerformer).start();
int秒=60,分钟=10;
int延迟=1000//毫秒
ActionListener taskPerformer=新建ActionListener(){
已执行的公共无效操作(操作事件evt){
第二--;
//把分秒放在你想要的地方,或者打印。。
if(secondConsole?GUI?到目前为止,您有什么代码?请编辑您的问题,以包含一个显示您尝试过的内容的代码;这可能是一个有用的起点。我尝试了您的方法,它成功了,只是我“暂停了”在完成之前,程序中的所有其他事情。你知道如何修复吗?为了做到这一点,你需要在一个新线程中运行此方法,但我们不想让事情变得太复杂,我在原始答案中添加了新代码。它仍然会暂停,当我按下开始按钮时,该按钮甚至不会启动,直到计时器完成!添加了正确的方法,或者至少我会这样做,你需要为你的计时器创建一个新类,它必须实现Runnable,而run方法,我分离了timer函数,当你调用new Thread(MyTimer)时调用这个新类,检查它,让我知道它是否工作;)仍然不起作用。下面是它看起来是正确的。知道吗:对于这样一个糟糕的问题,我发现这个一般的答案是最好的一般答案。一个简单的例子使用会很好。
int second=60,minute=10;
int delay = 1000; //milliseconds
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
second--;
// put second and minute where you want, or print..
if (second<0) {
second=59;
minute--; // countdown one minute.
if (minute<0) {
minute=9;
}
}
}
};
new Timer(delay, taskPerformer).start();