gpt4 book ai didi

java - 两次按钮单击之间的时间 (Java)

转载 作者:行者123 更新时间:2023-12-01 12:26:00 26 4
gpt4 key购买 nike

我想打印两次单击按钮(ButtonA 和 ButtonB)之间的时间。这是我的代码的一部分(它不起作用,因为只打印当前时间):

class ClicksReporter implements ActionListener {

@Override
public void actionPerformed(ActionEvent e) {
long startTime = 0;
long endTime = 0;

if ( e.getActionCommand().equals("ButtonA") ) {
System.out.println("ButtonA was clicked");
startTime = System.currentTimeMillis()/1000;
}

if ( e.getActionCommand().equals("ButtonB") ) {
System.out.println("ButtonB was clicked");
endTime = System.currentTimeMillis()/1000 - startTime;
System.out.println("Time: "+endTime);
}
}

我该如何解决这个问题?

最佳答案

startTimeendTime 是局部变量,一旦方法返回,它们就会丢失。因此,每次单击 ButtonB 时,startTime 的值都为零。您需要将开始时间作为类的一个字段。因此,如下所示:

class ClicksReporter implements ActionListener {
long startTime=0;
@Override
public void actionPerformed(ActionEvent e) {
if ( e.getActionCommand().equals("ButtonA") ) {
System.out.println("ButtonA was clicked");
this.startTime = System.currentTimeMillis()/1000;
}

if ( e.getActionCommand().equals("ButtonB") ) {
System.out.println("ButtonB was clicked");
long endTime = System.currentTimeMillis()/1000 - startTime;
System.out.println("Time: "+endTime);
}
}

此外,请确保将 ClicksReporter 的同一实例设置为按钮 A 和 B 的操作监听器。

关于java - 两次按钮单击之间的时间 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26326671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com