两次单击按钮之间的时间(Java)
我想打印两次按钮点击之间的时间(ButtonA和ButtonB)。这是我代码的一部分(由于只打印当前时间,因此无法工作):两次单击按钮之间的时间(Java),java,button,time,Java,Button,Time,我想打印两次按钮点击之间的时间(ButtonA和ButtonB)。这是我代码的一部分(由于只打印当前时间,因此无法工作): 如何解决此问题?startTime和endTime是局部变量,一旦方法返回,这些变量就会丢失。因此,每次单击按钮b,开始时间的值都为零。您需要将开始时间改为类的一个字段。因此,如下所示: class ClicksReporter implements ActionListener { long startTime=0; @Override public void
如何解决此问题?
startTime
和endTime
是局部变量,一旦方法返回,这些变量就会丢失。因此,每次单击按钮b
,开始时间的值都为零。您需要将开始时间改为类的一个字段。因此,如下所示:
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);
}
}
另外,确保按钮A和按钮B的动作侦听器都设置了相同的ClicksReporter
实例
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);
}
}