[英]Java: Swing Timer waiting
我有這樣的代碼:
final SwingWorker worker = new SwingWorker() {
@Override
protected Object doInBackground() throws Exception {...};
}
Timer timer=new Timer(10000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
worker.execute();
}
});
timer.start();
有時工作程序需要10秒以上,但有時需要3-4秒,那么如何設置計時器等待工作人員的完全執行? 有什么建議?
查看SwingWorker
類的javadoc:
在工作線程上調用doInBackground方法之前,SwingWorker會將狀態屬性更改通知給StateValue.STARTED。 doInBackground方法完成后,執行done方法。 然后,SwingWorker會將任何PropertyChangeListeners狀態屬性更改通知給StateValue.DONE。
因此,當SwingWorker
完成時會觸發事件。 附加一個監聽器並在正確的事件上重新激活Timer
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.