2010-12-20 30 views
3

大家好: 我有一個Java Swing應用程序。有一個按鈕允許用戶創建打開應用程序的新窗口。當用戶決定關閉應用程序時,我使用System.Exit(0),但是當我按下「關閉」按鈕時,兩個應用程序窗口關閉。Java Swing關閉只有一個應用程序

public static void main(String[] args) 
{  
ghMain = new GreenHouseMain();  
} 

以上是我如何初始化第一個應用程序,然後使用相同的代碼來創建新的GreenHouseMain對象打開第二個應用程序窗口。

所以我的問題是如何關閉只有一個應用程序窗口,我按下了關閉按鈕?

謝謝全部

回答

3

請致電dispose()而不是要關閉的Window對象上的System.exit()。當沒有更多可見的窗口時,Event Dispatch線程將退出。

+0

+1 System.exit(code)退出JVM,dispose()處理與窗口實例關聯的資源。另外,從應用程序的角度來看,可能會有一個「主窗口」,它可能需要藉助System.exit(代碼)調用(或者處理所有其他窗口)。 – 01es 2010-12-21 10:07:52

1

我假定這兩個窗口都是JFrame。如果是這樣,最好是根據您的要求將第二個窗口設置爲JDialog,模態或非模態。如果你需要打開兩個窗口,並且希望能夠讓用戶選擇要關閉的窗口,那麼可能兩者都需要是對話框,儘管我不能100%確定根據你提供的信息。如果這些建議不能解決您的問題,請向我們提供有關您確切要求的更多詳細信息。

1

read the javadocs for setDefaultCloseOperation。 System.exit()正在做它應該如此,所以擺脫它。

相關問題