Probablemente el uso más común de los oyentes de ventana es para cerrar ventanas. Si un programa no maneja los eventos de cerrar ventana, no sucederá nada cuando el usuario intente cerrarla. Una aplicación que consiste en una sóla ventana podría reaccionar a los eventos de cerrar ventana saliendo de la aplicación. Un applet u otro programa en el que existan más de una ventana normalmente llama al método dispose para cerrar la ventana.
Otro uso común de los oyentes de ventanas es parar los threads y liberar los recursos cuando una ventana es inconificada, y para arrancar de nuevo cuando la ventana se agranda de nuevo. De esta forma, podrás evitar la utilización innecesaria del procesador u otros recursos. Por ejemplo, un programa que realiza contínuas animaciones, no es útil cuando la ventana no es visible, por eso debería liberar los recursos del sistema cuando está inconificada. Específicamente, debería parar el thread de animación y liberar cualquier gran buffer cuando la ventana es iconificada, y arrancar el thread de nuevo y recrear los bufferes cuando la ventana se desiconificada.
El interface WindowListener y su correspondiente clase adaptador, WindowAdapter, contienen siete métodos:
- void windowOpened(WindowEvent)
- Llamado por el AWT justo después de que la ventana escuchada haya sido abierta por primera vez [o mostrada después de haber sido cerrada].
- void windowClosing(WindowEvent)
- Llamado por el AWT en respusta a una petición del usuario de que la ventana escuchada sea cerrada. Para cerrar realmente la ventana, el oyente debe llama al método dispose de la ventana.
- void windowClosed(WindowEvent)
- Llamada por el AWT justo después de que la ventana escuchada haya sido cerrada.
- void windowIconified(WindowEvent)
void windowDeiconified(WindowEvent)- Llamados justo después de que la ventana escuchada haya sido iconificada o desiconificada, respectivamente.
- void windowActivated(WindowEvent)
void windowDeactivated(WindowEvent)- Llamada por el AWT justo después de que la ventana escuchada sea activada o desactivada, respectivamente.
Cada método de evento de ventana tiene un sólo parámetro: un objeto WindowEvent. La clase WindowEvent define un método útil, getWindow, que devuelve la ventana que generó el evento.