【问题标题】:Java decrement over timeJava 随时间递减
【发布时间】:2014-01-21 03:37:53
【问题描述】:

我正在寻求一些帮助来解决我最近遇到的问题。我想从 200 减少到 0,但我不希望它是即时的,而是希望它在一秒钟内减少。例如,0.5 秒为 100,0.75 为 50,依此类推。如果这是可能的,我很想听听你们的意见! - 非常感谢,布兰登

【问题讨论】:

  • 是的,有可能。提示:使用Thread.sleep
  • 查看 Java 中的线程和时间类
  • ScheduledExecutorService
  • 您应该使用上述线程以便理解它,然后查看像 Trident (Swing) 或 Java FX 这样的动画库。在 GUI 上处理动画确实有很棒的实现。
  • 这是在应用程序中吗?使用 GUI、命令行应用程序或 servlet..?答案会根据答案的不同而发生很大变化。

标签: java time decrement


【解决方案1】:

做你想做的事,答案如下:

int index = 200;

while(index != 0)
{
    index--;
    System.out.println("The value is: " + index);
    try {
        //200 * 5 milliseconds = 1 second
        Thread.sleep((long) 5);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

你可能想把它放在一个线程中。这是一个可以帮助您的页面: http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html

【讨论】:

  • 啊,谢谢!这很好用,也感谢您的链接,我很快就会阅读。
【解决方案2】:

您可以尝试使用计时器。安排它以所需的时间间隔运行并根据需要减少值。还有其他选项,例如循环迭代,等待所需的时间间隔然后递减。

【讨论】:

    【解决方案3】:

    你可以涉及一个Java线程,在run方法中做一个循环,在条件下使用Thread.sleep方法。

    【讨论】:

      【解决方案4】:

      你可以使用这样的东西。使用thread.sleep找到你想要延迟的比例并在每次迭代中延迟它。 在每次迭代中,正在运行的线程(主程序)将休眠 200 毫秒

      public static void main(String[] args) throws InterruptedException {
      
      
              for(int i = 0;i<200;i++){
                  Date date = new Date();
              Thread.sleep(200); // this is mili seconds
              System.out.println(date.getTime());
              }
      
      
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多