He creado un cuadro de diálogo con un jpanel en su interior, y que jpanel será todavía se hace referencia a si me deshago de el cuadro de diálogo. Quiero destruir ese diálogo, y todo lo que en él cuando hago clic en un botón de cancelar. ¿Cómo puedo eliminar el diálogo y el jpanel?

Miclase o = new Miclase(); s = null;

OriginalEl autor joseph | 2010-03-15

8 Comentarios

  1. 10

    Responder a la pregunta(s) que se plantean en el comentario:

    Una vez que se muestra un cuadro de diálogo:

    setVisible(true);

    se esconden llamando al:

    setVisible(false);

    y, a continuación, usted debe llamar a:

    dialog.dispose();

    para asegurarse de que todos los nativos de la GUI de recursos en el cuadro de diálogo se utiliza liberarse. Una vez hecho esto, el recolector de basura limpieza de todos los objetos una vez que ya no tiene ninguna referencias a ellos.

    y qué si no es un diálogo.Puede ser simple, de la clase?entonces, ¿de qué manera se sugieren
    Si se trata de una simple clase, entonces se pone a “destruido” por el recolector de basura una vez que ya no tiene ninguna referencias a la misma.
    Creo que el mismo debe suceder con la clase de diálogo.

    OriginalEl autor David Sykes

  2. 5
    1. Si se trata de una Ventana y si es visible

      I. marco.setVisible(false);

      II. marco.dispose();

      II. conjunto de referencia a null (ex.. frame=null;)

    2. Si no es una Ventana

      I. establecer referencia a null (ex.. x=null;)

    Eso es todo , una vez que el objeto de ser libre GC va a liberar los recursos cuando se es como.

    Aquí hay algo que usted debe entender

    *. Como programador de Java no puede obligar a la recolección de Basura en Java; sólo se activará si la JVM piensa que necesita una recolección de basura basado en Java tamaño de la pila.

    *. Hay métodos como Sistema.gc () y tiempo de ejecución.gc () que se utiliza para enviar la solicitud de recolección de Basura para la JVM, pero no se garantiza que la recolección de basura que va a suceder.

    *. Si no hay espacio en la memoria para la creación de nuevos objetos en el Montón de la Máquina Virtual de Java lanza OutOfMemoryError o java.lang.OutOfMemoryError montón de espacio

    Y buscar acerca de esto…

    J2SE 5(Java 2 Standard Edition) añade una nueva característica denominada Ergonomía . objetivo de la ergonomía es para proporcionar un buen rendimiento de la JVM con un mínimo de línea de comandos de ajuste.

    OriginalEl autor Lalith J.

  3. 4

    No hay necesidad de eliminar el objeto. El recolector de basura se hará cargo de la memoria tan pronto como se deja de hacer referencia.

    pero creo diálogo con jpanel en su interior, y que jpanel todavía será proporcional. Quiero destruir ese diálogo cuando haga clic en mi propio botón “Cancelar”
    Así se puede establecer en null
    Quitar el JPanel en el cuadro de diálogo cuando la cierre, si usted va a mantener una referencia a la JPanel. Para prevenir el JPanel de mantener una referencia para el diálogo y mantenerlo (el diálogo).

    OriginalEl autor Raul Agrait

  4. 3

    Puede reemplazar el finalize (), método (ver http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#finalize%28%29) para realizar la limpieza cuando un objeto es destruido.

    Sin embargo, a diferencia de C++ no hay ninguna garantía cuando se va a este método llamado. En C++ tiene en la pila de objetos almacenados que se destruyen cuando la ejecución sale el ámbito en el que se han definido.

    En Java de todos los objetos almacenados en la pila. Se finalizará cuando el recolector de Basura se decide a recoger (implica que no son accesibles desde la aplicación), pero no sabes cuando va a la GC patada en. Por lo tanto, si usted tiene algún tipo de limpieza que debe tener lugar en un momento determinado (por ejemplo, cerrar un archivo para que pueda ser escrita a) usted tiene el código de ti mismo y no depender de los finalize() método que se llama.

    El patrón típico para hacer que se basa en un try ... finally bloque:

    X x = null;
    try {
      //... do some stuff
      x = ... //obtain an object
       ... //do some stuff 
    }
    finally {
      if(x != null)
         x.close(); //Perform cleanup WRT x
    }

    (Es cierto que, feo)

    OriginalEl autor Itay Maman

  5. 2

    Si quieres eliminar el asignar a esa referencia de objeto null, por lo que cuando el Recolector de Basura se ejecuta para la próxima vez que se puede destruir el objeto del pensamiento no es la obtención de referencia.

    OriginalEl autor GuruKulki

  6. 2

    Que significaba el “cómo”, para destruirlo? No hay manera de destruir un objeto de forma explícita en Java. el recolector de basura de Java automáticamente recupera la memoria ocupada por ella, Si no hay ninguna referencia de la misma existe.

    “pero creo diálogo con jpanel
    en su interior, y que jpanel será
    todavía proporcional. Quiero destruir
    ese diálogo cuando haga clic en mi propio botón
    “Cancelar”

    Sólo pruebe a establecer que un objeto JPanel a null o llamar al método dispose en él si que está disponible.

    OriginalEl autor Ashish Gupta

  7. 2

    No hay necesidad de destruir objetos en Java como en C++.No hay recolector de basura que destruye(liberación de memoria) de los objetos de forma automática después de que no hay ninguna referencia a este objeto en la ejecución de código. Todo lo que usted puede hacer es forzar a destruir el vínculo por Object obj = null; Esta mata referencia a obj.

    OriginalEl autor Artic

  8. 1

    Del sistema”.gc()” es la mejor manera.

    gc-Recolector de Basura.

    Esta es la forma en que se va a destruir el objeto en el propio programa

    Código De Ejemplo:

    public class TestRun
    {
      public static void main(String args[])
      {
         /*1*/     TestRun tr=new TestRun(); 
         /*2*/     System.gc(); //You can omit this step. This is just an example. 
         /*3*/     tr=null;    
         /*4*/     System.gc();  
      }    
    }

    Explicación

    1. Un objeto de la clase TestRun es creado y su referencia se almacena en la variable ‘tr’.

    2. Recolector de basura se llama. Pero no hace efecto. Porque no hay ningún objeto sin referencia todavía.

    3. El objeto que se creó en el paso 1, ahora se eliminan las referencias.Pero el espacio que estaba ocupado por el objeto está todavía bloqueado.

    4. Que el Recolector de basura de nuevo invoca, y ahora se ve que el objeto que se creó en el paso 1 es ahora eliminan las referencias. Por lo tanto, ahora se libera el espacio ocupado por el objeto y el objeto se borrará de la memoria en un lenguaje sencillo.

    De hecho es eliminar todos aquellos objetos que ya están eliminan las referencias.

    Es una buena práctica para mantener su llamada en tu código.

    OriginalEl autor Aditya Singh

Dejar respuesta

Please enter your comment!
Please enter your name here