[英]Swing stop timer when exiting jframe
我有一個特定的任務,我按計划的時間間隔運行。 基本上我在JFrame中的Label上顯示相機。 但是,當我退出JFrame時,應用程序似乎運行。 我怎么能阻止它? 我已經刪除了代碼的細節,只是將相關部分留在了
public class TaskCLass extends JFrame {
JPanel p;
JLabel l;
Timer timer;
public TaskCLass() {
p = new JPanel();
l = new JLabel("Window");
add(p);
p.add(l);
setSize(700, 600);
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println(e);
timer.purge();
timer.cancel();
System.exit(1);
}
public void windowClosed(WindowEvent e) {
System.out.println(e);
timer.purge();
timer.cancel();
System.exit(1);
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
startTask();
}
public static void main(String[] args) {
new TaskCLass();
}
public void startTask() {
TimerTask t = new TimerTask() {
@Override
public void run() {
//.........
}
};
timer = new Timer();
timer.schedule(t, 0, 200);
}
}
如果計划的代碼正在修改GUI,最好使用Swing Timer 。 否則,如果您使用非Swing Timer ,則需要使用cancel()將其關閉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.