[英]TimerTask vs Timer vs Thread?
我試圖在JLabel上連續顯示日期和時間。 因此,在我看過的上一個教程中,發言人說:“您必須在必要時使用此線程,因為它會占用程序的內存”。
因此,我搜索其他替代方法,然后發現Timer和TimerTask這是在程序的長期運行中最有效的方式?
計時器用於在一定間隔后,延遲或兩者結合后運行任務(即TimerTask)。 在您的情況下,您可以使用以下方式:
java.util.Timer timer = new java.util.Timer();
timer.schedule(new TimerTask() {
public void run() {
// do task
}
}, 0, 1000); //updates every second
請注意,為了更新Swing線程以外的其他線程中的Swing組件,您將需要使用SwingWorker(請參見Swing並發教程 ),或者使用Swing計時器代替。 下面的代碼使用Swing計時器每秒更新標簽的日期:
javax.swing.Timer timer1 = new javax.swing.Timer(0, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
label.setText(new Date());
}
});
timer1.setRepeats(true);
timer1.setDelay(1000);
我尚未對此進行測試,因此您可能需要對其進行一些調整才能為您工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.