我有一個Java Swing定時器,它每秒更新一個標籤。啓動計時器後,標籤每秒更新一次,一切正常。Java定時器在隨機時間後不觸發
然後,在隨機時間間隔(從執行變爲執行)之後,標籤停止更新。我在定時器更新代碼中放置了一個斷點,不再被觸發。
我也把日誌語句放在所有我通常會停止計時器的地方,但是這些地方都沒有被調用。
可能是什麼問題?
編輯:這裏是代碼
ActionListener actionListener = new ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent arg0) {
secondsRemaining--;
System.out.println("Seconds remaining:" + secondsRemaining);
//update the progressbar
double initialLength = currentSettings.getLength()*60;
double progress = (initialLength - secondsRemaining)/initialLength ;
progressBarTime.setProgress(progress);
//update the progress label
progressPercentage.setText(((int)(progress * 100)) + "%");
if (secondsRemaining >= 0) {
updateTimeRemaining(secondsToString(secondsRemaining));
} else {
System.out.println(">0 seconds TIMER STOPPED with the number of seconds = " + secondsRemaining);
treatmentTimer.stop();
// set the status to Finished
currentState = State.FINISHED;
}
}
}
和定時器初始化的樣本:
tTimer = new Timer(1000, actionListener);
tTimer.start();
什麼奇怪的是,該程序正常工作與JRE 7u7安裝在PC上,即定時器更新標籤成功,但我已經嘗試了兩臺電腦與7u10和這個計時器停止問題發生在兩個。
任何地方拋出異常? (日誌文件,系統輸出/錯誤等)?其可能的計時器線程被未捕獲的異常殺死 – radai
請向我們展示您的代碼,我們不是嚮導。 [SSCCE會很棒](http://sscce.org/) – atomman