2011-12-21 23 views
8

Czy jest jakaś różnica między tymi dwoma elementami. Czytałem artykuł (http://www.javalobby.org/java/forums/t17933) o tym należy zawsze używaćSystem.exit (0) vs JFrame.EXIT_ON_CLOSE

System.exit(0); 

Obecnie używam

JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

W artykule mówi, że nawet dla Swing aplikacji Java należy dodać detektor WindowAdapter i oraz połączenia System.exit() w swojej metodzie windowClosing(WindowEvent e).

Czy są jakieś różnice? Czy jedna metoda jest lepsza od drugiej?

Odpowiedz

12

Jeśli spojrzeć na kod JFrame, robi:

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; 
      } 
     } 
    } 

Tak, to jest dokładnie to samo. Po prostu ustawię EXIT_ON_CLOSE, jeśli chcesz to zrobić.

0

Cóż, biorąc pod uwagę, że System.exit (0) jest w kodowaniu JFrame, albo zadziałałby.

Powiązane problemy