Java中的定时器,哪个在上升

Java中的定时器,哪个在上升,java,swing,timer,Java,Swing,Timer,我正在开发一个测验程序 我想要一个计时器,它会上升一秒钟,直到做测试的人点击提交答案按钮 除了计时器之外,我还有其他工作要做,我只是想知道如何添加计时器,并在按下提交答案按钮时使其停止。尝试创建一个增加一个数字的新线程,然后thread.sleep(1000)在循环中。我承认这不是最好的方法,但它可以用于大多数情况。不知道实现这种东西的代码就像猜测一样。计时器还是秒表?要计算用户点击提交所花费的时间,您可以执行以下操作: // when they start the quiz question

我正在开发一个测验程序

我想要一个计时器,它会上升一秒钟,直到做测试的人点击提交答案按钮


除了计时器之外,我还有其他工作要做,我只是想知道如何添加计时器,并在按下提交答案按钮时使其停止。

尝试创建一个增加一个数字的新线程,然后
thread.sleep(1000)在循环中。我承认这不是最好的方法,但它可以用于大多数情况。不知道实现这种东西的代码就像猜测一样。

计时器还是秒表?要计算用户点击提交所花费的时间,您可以执行以下操作:

// when they start the quiz question
long start = System.currentTimeMillis();

// when they hit submit
long finish = System.currentTimeMillis();

// difference is how long they took
long time = finish - start;
System.out.println("You took " + time + " milliseconds");

请记住,它们所用的时间将以毫秒为单位。如果需要,您可以将其转换为秒(1秒内有1000毫秒)。

假设您使用的是Swing,因为您提到了按钮按下,您可以这样做-

private long startTime, endTime;
private Timer timer;

// When you need to start your timer, do-
startTime = System.currentTimeMillis();
if (timer == null) {
    timer = new Timer(100, this);
    timer.start();
} else {
    timer.restart()
}

// When the button is pressed
endTime = System.currentTimeMillis();
timer.stop();

double totalSeconds = (endTime - startTime) / 1000.0;

// To know how long it's been running-
long time = (System.currentTimeMillis() - startTime) / 1000;

参考:

嗯,你知道你需要一个计时器。我猜你用的是秋千。那么,你读过javax.swing.Timer的javadoc了吗?请澄清一下——这是一个与swing相关的问题吗?你试过什么?你被困在哪里了?@user3394596我很高兴它能帮上忙。