在Java中添加时间计数器?

时间:2012-06-30 21:50:18

标签: java timer counter

我正在用Java编写应用程序,我想在其中添加一个用户可以启动和停止的计数器。它将计入秒数,然后达到分钟和最多几小时(不是几天或几个月)。我该怎样做才能做出这样的事情?

以下是它的运作方式:

  1. 用户点击“开始”
  2. 反击开始...
  3. 用户点击“暂停”
  4. 计数器停止但未重置
  5. 我是Java的新手,所以有什么代码我可以看一下这个或类似的东西吗?如果没有,有人可以给我写一些代码来让我开始这个吗?

    谢谢, Ljbaumer

4 个答案:

答案 0 :(得分:2)

一些建议:

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

关于:

  

我是Java的新手,所以有什么代码我可以看一下这个或类似的东西吗?如果没有,有人可以给我写一些代码来让我开始这个吗?

不,这不是它的工作原理。您有责任编写自己的代码,但如果您遇到任何错误或异常,我们将很乐意为您提供帮助。您将通过强迫您的大脑创建代码来学习更多知识,特别是如果它似乎很难做到的话。

请查看以下教程:

答案 1 :(得分:0)

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

Guava有一个StopWatch课程,可以为你做任何事。

答案 2 :(得分:0)

我相信这就是你追求的目标

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

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

这个例子可以帮助您入门:

摇摆/ SwingTimeraction.htm“> HTTP://www.java2s.com/Tutorial/Java/0240_Swing/SwingTimeraction.htm

答案 3 :(得分:0)

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

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

long elapsed = stopWatch.getTime();