Los eventos Internal frame son a los JInternalFrame lo que los eventos window son a los JFrame. Al igual que los eventos window, los eventos internal frame notifican a sus oyentes que la "window" ha sido mostrada por primera vez, ha sido eliminada, iconificada, maximizada, activada o desactivada. Antes de usar este tipo de eventos debemos familiarizarnos con los Oyentes de Window.
�M�todos de Evento Internal Frame
El interface InternalFrameListener y su correspondiente clase adaptador, InternalFrameAdapter, contienen estos m�todos.
- void internalFrameOpened(InternalFrameEvent)
- Se le llama despu�s de el internal frame escuchado se muestre por primera vez.
- void internalFrameClosing(InternalFrameEvent)
- Se le llama en respuesta a una petici�n del usuario de que el internal frame esuchado sea cerrado. Por defecto , JInternalFrame oculta la ventana cuando el usuario lo cierra. Podemos usar el m�todo setDefaultCloseOperation de JInternalFrame para especificar otra opci�n, que puede ser DISPOSE_ON_CLOSE o DO_NOTHING_ON_CLOSE (ambas definidas en WindowConstants, un interface que implementa JInternalFrame). O implementando un m�todo internalFrameClosing el oyente del internal frame, podemos a�adir un comportamiento personalizado (como mostrar un d�alogo o salvar datos) para cerrar un internal frame.
- void internalFrameClosed(InternalFrameEvent)
- Se le llama despu�s de que haya desaparecido el internal frame escuchado.
- void internalFrameIconified(InternalFrameEvent)
void internalFrameDeiconified(InternalFrameEvent)
- Se les llama despu�s de que el internal frame escuchado sea iconificado o maximizado, respectivamente.
- void internalFrameActivated(InternalFrameEvent)
void internalFrameDeactivated(InternalFrameEvent)
- Se les llama despu�s de que el internal frame escuchado sea activado o desactivado, respectivamente.
�Ejemplos de Manejo de Eventos InternalFrame
La aplicaci�n mostada en la siguiente figura demuestra el uso de eventos internal frame. La aplicaci�n escucha eventos internal frame desde el frame Event Generator, mostrando un mensaje que describe cada evento.

Prueba esto:
|
Aqu� est� el c�digo que maneja los eventos de internal frame.
public class InternalFrameEventDemo ... implements InternalFrameListener ... { ... protected void createListenedToWindow() { listenedToWindow = new JInternalFrame("Event Generator", true, //resizable true, //closable true, //maximizable true); //iconifiable listenedToWindow.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE); ... } public void internalFrameClosing(InternalFrameEvent e) { displayMessage("Internal frame closing", e); } public void internalFrameClosed(InternalFrameEvent e) { displayMessage("Internal frame closed", e); listenedToWindow = null; } public void internalFrameOpened(InternalFrameEvent e) { displayMessage("Internal frame opened", e); } public void internalFrameIconified(InternalFrameEvent e) { displayMessage("Internal frame iconified", e); } public void internalFrameDeiconified(InternalFrameEvent e) { displayMessage("Internal frame deiconified", e); } public void internalFrameActivated(InternalFrameEvent e) { displayMessage("Internal frame activated", e); } public void internalFrameDeactivated(InternalFrameEvent e) { displayMessage("Internal frame deactivated", e); } void displayMessage(String prefix, InternalFrameEvent e) { String s = prefix + ": " + e.getSource(); display.append(s + newline); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals(SHOW)) { ... if (listenedToWindow == null) { createListenedToWindow(); listenedToWindow.addInternalFrameListener(this); ... } } ... } }
�La clase InternalFrameEvent
Cada m�todo de evento internal frame tiene un s�lo par�metro: un objeto InternalFrameEvent. La clase InternalFrameEvent generalmente no define m�todos �tiles. Para obtener el internal frame que gener� el evento, se usa el m�todo getSource, que InternalFrameEvent hereda de EventObject.