簡體   English   中英

無法使Java Timer工作(javax.swing.Timer)

[英]Cant get Java Timer working (javax.swing.Timer)

因此,我試圖學習javax.swing.Timer的工作方式,但是我無法通過它進行簡單的操作。 基本上我想做的就是讓系統每秒打印出“ test2”,但是似乎從未調用過actionPerformed方法。 我究竟做錯了什么?

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

public class Main 
{
    public static void main(String[] args)
    {
        System.out.println("test 1");

        final Other o = new Other();

        class TimerListener implements ActionListener
        {
            public void actionPerformed(ActionEvent e) 
            {
                System.out.println("test2");
            }               
        }
        //test
        System.out.println("test 3");

        ActionListener listener = new TimerListener();

        //test
        System.out.println("test 4");

        final int DELAY = 1000;
        Timer t = new Timer(DELAY, listener);

        //test
        System.out.println("test 5");

        t.start();

        //test
        System.out.println("test 6");
    } 
}

這是上面的代碼產生的輸出:

測試1測試3測試4測試5測試6

謝謝!

在計時器有機會觸發之前,程序正在退出。 添加一個Thread.currentThread().sleep(10000) ,您將看到計時器事件。

在main方法完成后,計時器不會強制您的程序繼續運行。 如果不啟動另一個線程來運行或確保主線程運行足夠的時間,則計時器可能永遠不會觸發。

暫無
暫無

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

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