Al llegar a la X en un JFrame, el sistema se puede configurar para hacer varias cosas. El valor predeterminado es que la ventana simplemente está oculta con setVisible (falso), creo.
Puede establecer un marco para hacer cosas diferentes al cerrar - puede hacer que disponga, oculte o llame al código según setDefaultCloseOperation. Aquí están las opciones:
DO_NOTHING_ON_CLOSE: No hagas nada; requiere que el programa maneje la operación en el método windowClosing de un objeto WindowListener registrado.
HIDE_ON_CLOSE: Oculta automáticamente el marco después de invocar cualquier objeto WindowListener registrado.
DISPOSE_ON_CLOSE: Oculte y elimine automáticamente el marco después de invocar cualquier objeto WindowListener registrado.
EXIT_ON_CLOSE: salga de la aplicación utilizando el método de salida del sistema. Use esto solo en aplicaciones.
Pero creo que lo que buscas es setVisible (falso).
+1. Siempre me he preguntado esto, pero nunca me tomé el tiempo para preguntar. – Andy