-1

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

以下是它的功能:

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

我是 Java 新手,所以有什么我可以看的代码可以做到这一点或类似的事情吗?如果没有,有人可以给我写一些代码来让我开始吗?

谢谢, Ljbaumer

4

4 回答 4

2

一些建议:

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

关于:

我是 Java 新手,所以有什么我可以看的代码可以做到这一点或类似的事情吗?如果没有,有人可以给我写一些代码来让我开始吗?

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

请查看以下教程:

于 2012-06-30T21:52:47.153 回答
1

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

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

long elapsed = stopWatch.getTime();
于 2012-07-01T03:42:40.740 回答
0

我相信这就是你所追求的

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

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

此示例应该可以帮助您入门:

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

于 2012-06-30T21:56:41.550 回答
0

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

Guava 有一个StopWatch类,可以为你做所有事情。

于 2012-06-30T21:54:00.397 回答