Clase WindowEvent
Se produce un WindowEvent cada vez que se abre, cierra, iconiza, restaura, activa o desactiva una ventana. La interface WindowListener contiene los siete métodos siguientes, con los que se puede responder a este evento:
void windowOpened(WindowEvent we); // antes de mostrarla por primera vez void windowClosing(WindowEvent we); // al recibir una solicitud de cierre void windowClosed(WindowEvent we); // después de cerrar la ventana
void windowIconified(WindowEvent we);
void windowDeiconified(WindowEvent we);
void windowActivated(WindowEvent we);
void windowDeactivated(WindowEvent we);
El uso más frecuente de WindowEvent es para cerrar ventanas (por defecto, los objetos de la clase Frame no se pueden cerrar más que con Ctrl+Alt+Supr). También se utiliza para detener threads y liberar recursos al iconizar una ventana (que contiene por ejemplo animaciones) y comenzar de nuevo al restaurarla.
La clase WindowEvent define la siguiente serie de constantes que permiten identificar el tipo de evento:
WINDOW_OPENED, WINDOW_CLOSING, WINDOW_CLOSED, WINDOW_ICONIFIED, WINDOW_DEICONIFIED, WINDOW_ACTIVATED, WINDOW_DEACTIVATED
En la clase WindowEvent el método Window getWindow() devuelve la Window que generó el evento. Se utiliza en lugar de getSource().
Fuente: Aprenda Java como si estuviera en primero de la Universidad de Navarra