2011-12-21 42 views
8

¿Hay alguna diferencia entre los dos? Estaba leyendo un artículo (http://www.javalobby.org/java/forums/t17933) sobre el que siempre se debe utilizarSystem.exit (0) vs JFrame.EXIT_ON_CLOSE

System.exit(0); 

Actualmente utilizo

JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

El artículo dice que incluso para una aplicación Java Swing se debe añadir un oyente WindowAdapter yy llamada System.exit() dentro de su método windowClosing(WindowEvent e).

¿Hay alguna diferencia? ¿Un método es mejor que el otro?

Respuesta

12

Si nos fijamos en el código JFrame, que hace:

protected void processWindowEvent(WindowEvent e) { 
     super.processWindowEvent(e); 

     if (e.getID() == WindowEvent.WINDOW_CLOSING) { 
      switch(defaultCloseOperation) { 
       ... 
      case EXIT_ON_CLOSE: 
        // This needs to match the checkExit call in 
        // setDefaultCloseOperation 
     System.exit(0); 
     break; 
      } 
     } 
    } 

lo tanto, es exactamente lo mismo. Solo pondría EXIT_ON_CLOSE si eso es lo que quieres que haga.

0

Bueno, teniendo en cuenta que System.exit (0) está en la codificación JFrame, cualquiera funcionaría.

Cuestiones relacionadas