【问题标题】:Adding a time counter in Java?在Java中添加时间计数器?
【发布时间】:2012-06-30 21:50:17
【问题描述】:

我正在用 Java 编写一个应用程序,我想在其中添加一个用户可以启动和停止的计数器。它会以秒为单位计数,然后以分钟计,直至数小时(而不是数天或数月)。我该怎么做才能做出这样的事情?

这是它的功能:

  1. 用户点击“开始”
  2. 计数器开始...
  3. 用户点击“暂停”
  4. 计数器停止但不重置

我是 Java 新手,有没有我可以查看的代码来执行此操作或类似的操作?如果没有,有人可以给我写一些代码来帮助我开始吗?

谢谢, 李鲍默

【问题讨论】:

    标签: java timer counter


    【解决方案1】:

    一些建议:

    • 我会在我的 GUI 库中使用 Swing
    • 我会使用 Swing Timer 作为 GUI 计时器的核心。
    • JLabel 将显示来自 Swing Timer 的时间变化。
    • 启动 JButton 的 ActionListener 将启动 Swing Timer(在其上调用 start()
    • 暂停 JButton 的 ActionListener 将调用 stop()

    关于:

    我是 Java 新手,有没有我可以查看的代码来执行此操作或类似的操作?如果没有,有人可以给我写一些代码来帮助我开始吗?

    不,这不是这里的工作方式。您负责编写自己的代码,但如果您遇到任何错误或异常,我们将很乐意为您提供帮助。通过强迫你的大脑创建代码,你会学到更多东西,尤其是在看起来很难做到的时候。

    请查看以下教程:

    【讨论】:

      【解决方案2】:

      有人提到了 Guava StopWatch 类。我不确定你是否可以暂停和恢复,但我知道 apache commons-lang 有一个 StopWatch 类,它允许通过 suspend() 和 resume() 方法实现这一点

      StopWatch stopWatch = new StopWatch();
      stopWatch.start();
      ...
      stopWatch.suspend();
      ...
      stopWatch.resume();
      ...
      stopWatch.stop():
      
      long elapsed = stopWatch.getTime();
      

      【讨论】:

        【解决方案3】:

        System.nanoTime() 返回当前时间,以纳秒为单位。调用一次并将结果存储在一个变量中,让您的程序运行一段时间,再次调用它并计算差异。您将获得纳秒,您可以将其转换为秒、分钟或任何您想要的单位。

        Guava 有一个 StopWatch 类,可以为您完成所有工作。

        【讨论】:

          【解决方案4】:

          我相信这就是你所追求的

          http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html

          您可以设置按钮来启动和暂停计时器。

          这个例子应该可以帮助你入门:

          Swing/SwingTimeraction.htm">http://www.java2s.com/Tutorial/Java/0240_Swing/SwingTimeraction.htm

          【讨论】:

            猜你喜欢
            • 2018-05-25
            • 1970-01-01
            • 1970-01-01
            • 2019-06-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多