如何用Timer计算反应时间?

时间:2013-10-12 09:37:19

标签: java swing timer

我有一个面板,其中显示一个小的红色圆圈,一段时间后,红色圆圈被黄色圆圈取代,用户必须在看到黄色圆圈时尽快点击面板。因此,反应时间是显示黄色圆圈的时刻与用户在大面板中单击的时刻之间的时间(以毫秒为单位)。该测试重复5次。

如何使用javax.swing.Timer使用System.currentTimeMillis()计算定时器启动时的反应时间和5次测试的平均反应时间? (需要使用它)

2 个答案:

答案 0 :(得分:1)

计算执行时间,建议使用System.nanotime()代替System.currentTimeMillis() 有关详细信息,请参阅此link

public static long nanoTime()
     

返回最精确的可用系统计时器的当前值,以纳秒为单位。

     

此方法只能用于   测量经过的时间而不是   与任何其他系统概念有关   或挂钟时间。返回的值   从某些方面起代表纳秒   固定但任意的时间(也许是在   未来,所以价值观可能如此   负)。这种方法提供   纳秒精度,但不是   必须达到纳秒精度。没有   保证是如何做的   经常改变价值观。差异   在连续的呼叫中跨越更大   大约292年(2 63   纳秒)不准确   计算由数字引起的经过时间   溢出。

答案 1 :(得分:1)

计时器是您的要求的错误工具。使用它可以更改圆的颜色并在执行时保存时间戳。然后在圆圈上有一个点击监听器,将保存的时间戳与当前时间戳进行比较。