簡體   English   中英

Java Swing Timer無限循環

[英]Java Swing Timer infinite loop

我遇到了一個簡單的Java swing Timer I問題。 它做的一切都很好,直到不得不停下來。 我認為它是在定時器上創建一個無限循環的定時器,但我一直在關注多個教程,我無法看到我出錯的地方。

代碼說明:runButtonListener需要循環遍歷filelinecount變量所說的次數(從不同的函數讀取)。 目前的代碼只是打印到系統,我將在稍后更新一些動畫。 filelinecount在下面的代碼中為0,但由不同的函數更改。 因此,為了調試,我認為如果手動更改filelinecount的值,附加的代碼是可運行的。

任何幫助是極大的贊賞

private int filelinecount = 0;
private int timercount = 0;
private Timer timer;

class runButtonListener implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e){

        // LOOK AT TIMER!!!
        if (timercount == filelinecount) {
            timer.stop();
            System.out.println("stopping");
            //timercount = 0;
        } else {
            System.out.println("yo " + timercount + "," + filelinecount);

            timercount++;
        }

        timer = new Timer(100,this);
        timer.start();
    }
}

每次定時器回叫您時,您都會創建一個新定時器並啟動它。

這包括你調用timer.stop()

如果要繼續,則只需創建新計時器。

真的,你應該看看另一種方法,而不是不斷地重新創建計時器。 根據您的具體要求,有多種方法可供選擇。

例如,使用scheduleAtFixedRate ,使用工作線程或SwingWorkerScheduledExecutorService等。

暫無
暫無

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

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