JDialog with WindowListener - windowClosing not fired
11,553
Works for me. See also this related example.
import java.awt.EventQueue;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JDialog;
class MyClass extends JDialog {
public MyClass() {
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("closing...");
//do something...
}
});
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
MyClass m = new MyClass();
m.setVisible(true);
}
});
}
}
Author by
Admin
Updated on June 11, 2022Comments
-
Admin almost 2 years
I have a class that extends JDialog that have a window listener:
class MyClass extends JDialog { public MyClass() { setDefaultCloseOperation( JDialog.DO_NOTHING_ON_CLOSE ); addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.out.println("closing..."); //do something... } }); } }
When i click in the X button, nothing happens. And I don't see the print of "closing..."
What I am missing?
-
Admin over 12 yearsThanks for example. I figured out that i'm was calling setVisible before adding the window listener...
-
trashgod over 12 yearsBehold, the power of an sscce! I'm pretty sure I've done something similar, too. :-)