Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Why don't you hide the frame yourself instead of using a default <code>HIDE_ON_CLOSE</code>?</p> <pre><code>// inside WindowListener class public windowClosing(WindowEvent e) { yourFrame.setVisible( false ); // your code here... } </code></pre> <p>Edit made: from docs:</p> <blockquote> <p>The default close operation is executed after any window listeners handle the window-closing event. So, for example, assume that you specify that the default close operation is to dispose of a frame. You also implement a window listener that tests whether the frame is the last one visible and, if so, saves some data and exits the application. Under these conditions, when the user closes a frame, the window listener will be called first. If it does not exit the application, then the default close operation — disposing of the frame — will then be performed.</p> </blockquote> <p>New edit with a working example:</p> <pre><code>import java.awt.event.*; import javax.swing.JFrame; public class ListenerTest extends JFrame implements WindowListener { public static void main(String[] args) { ListenerTest frame = new ListenerTest(); frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); frame.setVisible( true ); } public ListenerTest() { this.addWindowListener( this ); } public void windowActivated(WindowEvent e) { System.out.println(" activated "); } public void windowClosed(WindowEvent e){ System.out.println(" closed "); } public void windowClosing(WindowEvent e){ System.out.println(" closing "); } public void windowDeactivated(WindowEvent e){ System.out.println(" deactivated "); } public void windowDeiconified(WindowEvent e){ System.out.println(" deiconified "); } public void windowIconified(WindowEvent e){ System.out.println(" iconified "); } public void windowOpened(WindowEvent e){ System.out.println(" opened "); } } </code></pre> <p>Test this out in order to catch <del>what</del> which events are firing.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload