簡體   English   中英

兩次按鈕單擊之間的時間(Java)

[英]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);    
  }
}

我該如何解決?

startTimeendTime是局部變量,一旦方法返回,它們就會丟失。 因此,每次單擊ButtonBstartTime的值為零。 您需要將開始時間設置為類的字段,因此,如下所示:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM