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.