Java - Una duda sobre swing

 
Vista:

Una duda sobre swing

Publicado por Jonathan (30 intervenciones) el 12/07/2006 17:49:15
Cuando elimino un JPanel asignandole null (ejem. JPanelK = null) ¿¿¿¿ estoy eliminando tambien todos sus componentes y estoy liberando la memoria usada por el JPanel y sus componentes ?? ¿¿¿ o debo eliminar componente a componente y luego el JPanel???

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:Una duda sobre swing

Publicado por Rubén (42 intervenciones) el 12/07/2006 20:45:48
haz un panel.removeAll();
lo de = null no lo habia visto nunka, pero supongo k memoria no libera, lo mismo k si haces que sea invisible o historias de esas.
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
sin imagen de perfil

RE:Una duda sobre swing

Publicado por chuidiang (950 intervenciones) el 12/07/2006 22:43:43
Hola:

Lo de eliminar ventanas y componentes swing es algo delicado, nunca tienes la seguridad de que se liberen.

Por un lado debes hacer lo que dices panel=null.

Por otro lado, si el panel está dentro de una ventana (JFrame o JDialog, por ejemplo), debes quitarlo de la ventana (frame.remove(panel))

Si consigues que se libere el panel, posilblemente se liberen solos los componentes que tienes dentro (salvo que los tengas referenciados en otro sitio).

Se bueno.
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

RE:Una duda sobre swing

Publicado por Jonathan (30 intervenciones) el 13/07/2006 15:32:15
Gracias, ahora tengo un problema, una vez que remuevo el panel del JFrame y lo hago null y quiero volverlo a mostrar mediante el evento click de un boton pues simplemente me aparece el panel solo sin sus componentes!!! lo que hago para mostrarlo es lo siguiente:

JPanelModificado panel = new JPanelModificado();
jDesktopPane1.add(panel);
panel.setBounds(0,0,300,200);
panel.setVisible(true);

Esto me muestra el panel dentro de JDesktopPane que tengo en mi JFrame pero no me muestra los componentes que van dentro del JPanelModificado el cual es una clase que extiende de JPanel al cual le agregue mis elementos.

Cuando lo elimino (mediante el evento click de otro botón) lo que hago es esto:

if(panel!=null){

jDesktopPane1.remove(panel);
panel.setVisible(false);
panel = null;

}

//MUCHAS GRACIAS POR LA AYUDA QUE ME PUEDAN PRESTAR
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

RE:Una duda sobre swing

Publicado por Jonathan (30 intervenciones) el 18/07/2006 18:55:37
caso resuelto, solo debia llamar al metodo JPanel.updateUI(); y listo!!!!!
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