2012-08-04 36 views
0

我使用NetBeans(在Windows下)並在我的GUI程序中添加一個「關閉」按鈕。在按鈕上,我按下鼠標右鍵 - >事件 - >操作 - > actionPerformed。在代碼中,我按照以下方式進行。爲什麼System.exit(0)在NetBeans中不起作用?

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
    System.exit(0); 
} 

但運行後,我按下了「關閉」按鈕,程序沒有退出。相反,它被阻止,我無法再關閉它。爲什麼以及如何處理它?

在Linux NetBeans中執行相同的程序時,'System.exit'運行良好,這是否意味着我需要在Windows下重新安裝NetBeans?或者任何人都有同樣的問題?

Plus:下面的代碼表示jButton2事件已經註冊到ActionListener,它是由NetBeans自動添加的。

 jButton2.setText("Close"); 
     jButton2.addActionListener(new java.awt.event.ActionListener() { 
       public void actionPerformed(java.awt.event.ActionEvent evt) { 
         jButton2ActionPerformed(evt); 
       } 
     }); 
+0

而不是調用'System.exit',你有沒有考慮隱藏和處理所有使用的頂級容器?這也應該有所幫助。 – oldrinb 2012-08-04 04:55:44

回答

0

首先,你有沒有寄存器ActionListener該關閉按鈕?

2.Event Dispatcher Thread(EDT)只能處理GUI,不做任何處理在這裏。

0

我想你正在使用JFrame來建立你的GUI。在這種情況下,處理這個問題的簡單方法是添加以下行;

jFrameName.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
相關問題