2011-12-21 48 views
8

Có sự khác biệt nào giữa hai loại. Tôi đã đọc một bài báo (http://www.javalobby.org/java/forums/t17933) về điều đó, bạn nên luôn luôn sử dụngSystem.exit (0) vs JFrame.EXIT_ON_CLOSE

System.exit(0); 

Hiện nay tôi sử dụng

JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

Bài báo nói rằng ngay cả đối với một Swing Application Java bạn nên thêm một người biết lắng nghe WindowAdapter và và cuộc gọi System.exit() bên trong phương thức windowClosing(WindowEvent e).

Có sự khác biệt nào không? Là một phương pháp tốt hơn thì khác?

Trả lời

12

Nếu bạn nhìn vào mã JFrame, nó:

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

Vì vậy, nó là chính xác những điều tương tự. Tôi sẽ chỉ thiết lập EXIT_ON_CLOSE nếu đó là những gì bạn muốn nó làm.

0

Vâng, xem xét System.exit (0) là trong mã hóa JFrame, hoặc là sẽ làm việc.

Các vấn đề liên quan