簡體   English   中英

Java Swing Timer啟動問題

[英]Java Swing Timer start issue

使用有幫助的用戶Stefan提供的代碼,我已經編輯了自己的代碼以模仿他的代碼,但是我根本無法啟動計時器。 我嘗試將實例移出私有void並導致其他錯誤,例如嘗試重新定義timer變量。

private Timer timer;        

private void StartStopTimerActionPerformed(java.awt.event.ActionEvent evt) {                                               

    timer = new Timer(5000,new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent evt) {

        }
    });

    StartStopTimer.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if (!timer.isRunning()) {
                timer.start(); AddOneActionPerformed(evt);
            } else {
                timer.stop();
            }
        }
    });
}                 

此代碼對計時器沒有影響。 它不會開始計數

您將在每次單擊按鈕時創建新的計時器(第3行)。 將計時器設置為類中的一個字段 ,對其進行一次初始化,然后僅在ActionListeners中調用start和stop。

要暫停計時器,請調用“ stop()”,要重置計時器,請調用“ restart()”。

更新

import javax.swing.Timer;

class TimerExample {

   // only one timer per class (field)
   private Timer timer;

   TimerExample() {

    // initialize: counts 5 seconds, calls actionPerformed() and stops
    timer = new Timer(1000, new ActionListener(){

      @Override
      public void actionPerformed(ActionEvent evt) {
        // handle timer invoked ...
        System.out.println("Now!");
      }      
    });
    timer.setRepeats(true);

    JButton startStopBtn = new JButton("Start / Stop");
    startStopBtn.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if (!timer.isRunning()) {
                timer.start();
            } else {
                timer.stop();
            }
        }
    });
  }
 ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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