У меня есть небольшое приложение с основным 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();
}
Но он просто продолжает работать.
Я попытался реализовать WindowListener для JDialog и перезаписал windowClosed, windowClosing и даже windowDeactivated... безрезультатно
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("Closing");
t.stop();
}
Как я могу остановить таймер при закрытии JDialog?
opening a JDialog as modal
. Убедитесь, что вы добавили WindowListener в диалоговое окно, прежде чем сделать его видимым. - person camickr   schedule 05.03.2013