Java - Problema con JInternalFrame y ComponentAdded

 
Vista:

Problema con JInternalFrame y ComponentAdded

Publicado por Ángel (2 intervenciones) el 27/10/2004 16:42:59
Hola:

Tengo este código:

ContainerAdapter evento = new ContainerAdapter() {
public void componentAdded(ContainerEvent evt) {
if (evt.getChild() instanceof JInternalFrame) {
// resto del código
}
}
};

JDesktopPane jdp = new JDesktopPane()
jdp.addContainerListener(evento);

Esto debería crearme un JDesktopPane (jdp) y añadirle un listener para controlar cuándo se le añaden componentes. Y cuando se le añada un JInternalFrame se tiene que ejecutar el código.

Desde otra clase hago las siguientes llamadas:

JInternalFrame jif = new JInternalFrame();
jdp.add(jif);
jif.setVisible(true);

Y mi problema es que se lanza el ComponentAdded en estas dos últimas líneas, cuando debería sólo lanzarse con una de ellas.

¿Sabe alguien por qué?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con JInternalFrame y ComponentAdded

Publicado por serega (2 intervenciones) el 28/10/2004 07:22:18
Other call's of ContainerAdapter class happerns when U deIconify the JInternalFrame (jif).

JDesktopPane don't manage it's JInternalFrame's. He use DefaultDesktopManager here is the java doc of JDesktopManger:
void iconifyFrame(JInternalFrame f)
Removes the frame from its parent and adds its desktopIcon to the parent.

U must extend's DefaultDesktopManager and override his method's deiconifyFrame and/or iconifyFrame.
Then call JdesktopPane.setDesktopManager(new YourExtendedAndOverridedDefaultManager()) :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar