Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单java倒计时_Java_Multithreading_Timer_Countdown - Fatal编程技术网

简单java倒计时

简单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); }

我正在用java做一个学校项目,想知道如何创建计时器。 我试图构建的计时器应该从60秒开始倒计时。 请帮帮我


/约翰

有很多方法可以做到这一点。考虑使用一个睡眠函数,在每次迭代过程中让它睡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();