簡體   English   中英

關閉JDialog時,JDialog中的javax.swing.Timer不會停止

[英]javax.swing.Timer inside JDialog does not stop when closing JDialog

我有一個小應用程序,主JFrame打開JDialog作為模態。 在這個JDialog里面,我啟動了一個javax.swing.Timer,它應該在JDialog關閉時停止。

public Tasks() {
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    setBounds(100, 100, 800, 600);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);

    showTasks();

    t = new Timer(10000, new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Tasks.this.showTasks();
        }
    });
    t.start();

}

但它只是繼續運行。

我試圖為JDialog實現WindowListener,我覆蓋windowClosed,windowClosing甚至windowDeactivated ......無濟於事

@Override
public void windowClosing(WindowEvent e) {
    // TODO Auto-generated method stub
    System.out.println("Closing");
    t.stop();
}

如何在JDialog關閉時停止Timer?

我在這個例子中添加了一個WindowListener ,它似乎工作了。

this.addWindowListener(new WindowAdapter() {

    @Override
    public void windowClosing(WindowEvent e) {
        System.out.println(e);
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM