Pero tengo una pequeña duda: (es que en cierta parte del programa estoy agregando un Jpanel en tiempo de ejecución a un determinado JTextPane...
ese Jpanel en realidad es una subclase de JPanel y le puse componentes y en varios de estos componentes les programé el evento "Oprimir(ActionPerformed)"... y en este evento programé que se actualizara el contenido del JTextPane..aja el mismo JTextPane donde está el Jpanel que tiene el componente que ejecuta este evento.
ojala me entiendan, ¿mi duda es que pasa con todos esos recursos que utilizan los JPanel que pasan por el JTextPane, se liberan?
y otra duda miren mas o menos una versión simplificada del código que mencioné:
aquí esta la clase que actualiza el JTextPane y pues solo muestro un método y un constructor:
Código PHP:
public class AdministraContenido{
public Contenido(JTextPane contenedor){
this.contenedor = contenedor;
}
public void AgregaComponente(Component c){
contenedor.setText("");//borro al objeto:"PanelAInsertar" que esta visible actualmente
contenedor.setCaretPosition(contenedor.getStyledDocument().getLength());
contenedor.insertComponent((JPanel)c);
contenedor.setCaretPosition(1);
}
}
Código PHP:
public class PanelAInsertar extends JPanel{
private JTextPane miContenedor;
//por acá supongan código generado por netbeans para los componentes
//Constructor en donde pido una referencia al JTextPane donde se va insertar este //JPanel
public PanelAInsertar(JTextPane miContenedor){
this.miContenedor=miContenedor;
}
//evento de un JButton
private void JButtonActualizarActionPerformed(java.awt.event.ActionEvent evt){
//utilizo a objeto "AdministraContenido"
new AdministraContenido(miContenedor).AgregaComponente(new
PanelAInsertar(miContenedor));
// por acá realizo otra instrucción
}
}
y finalmente Aquí la clase que empieza todo:
Código PHP:
public class AgregaContenido extends JFrame{
// por acá supongan que ya he hecho gráficamente un JTextPane llamado: //"objJTextPane"
public void AgregaJPanel(){
new AdministraContenido(objJTextPane).AgregaComponente(new
PanelAInsertar(objJTextPane));
}
}
es facil saber cuando se liberan los recursos de una variable primitiva, pues con
dejarse de referenciar es suficiente.
pero acá ¿se están liberando los recursos de cada JPanel que se retira del JTextPane?
como ven en un momento dado un objeto gráfico: "PanelAInsertar" deja de ser visible en el JTextPane pero sigue ejecutando las instrucciones que pertenecen a un evento de uno de sus componentes.. entonces ¿si se esta eliminando ese objeto: "PanelAInsertar"?
¿o se eliminan cuando se termina de ejecutar todas las instrucciones de los eventos de sus componentes?
¿si es recomendable programar así?
agradezco al que me ayude con alguna de estas dudas, me preocupa que mi aplicación
solo empiece a ocupar y ocupar memoria con objetos gráficos no visibles o algo por el estilo jeje...saludos...