[英]Time between two button clicks (Java)
我想打印兩個按鈕單擊之間的時間(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);
}
}
我該如何解決?
startTime
和endTime
是局部變量,一旦方法返回,它們就會丟失。 因此,每次單擊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的動作偵聽器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.