[英]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.