2012-09-21 32 views
0

我在我的Java swing程序中打開了2個窗口。如果關閉一個窗口,程序將停止執行。有沒有辦法阻止執行並使用其他窗口進行遊戲?請用示例代碼解釋,因爲我是新手搖擺。我試圖在網上搜索,但我認爲我缺乏適當的關鍵字。一旦我關閉了swing java程序中的幾個窗口之一,程序就會停止執行

+0

上_stops execution_請詳細說明。拋出異常?退出JVM? – trashgod

+0

你想使用線程在後臺運行作業 – gigadot

+0

請編輯你的問題,包括一個[sscce](http://sscce.org/),它顯示了你當前的方法。 – trashgod

回答

5

您可能將您的新窗口的關閉操作設置爲EXIT_ON_CLOSE。尋找地方,這種情況發生在你的代碼:

JFrame frame = ... ; 
// ... 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

而更換EXIT_ON_CLOSEDISPOSE_ON_CLOSE爲所有,但你要關閉時有退出應用程序的窗口。

另請參閱您可以在setDefaultCloseOperation javadoc中傳遞的其他ON_CLOSE值。

+0

*「..除了您希望在關閉時退出應用程序的窗口。「*如果對每個*幀使用DISPOSE_ON_CLOSE,它也可以工作。關閉的最後一個窗口將退出應用程序。這至少可以應用,只要不存在延遲的非守護線程。如果有這樣的線程,他們應該合理關閉。 –

+0

@AndrewThompson不一定。這在Windows中可能是正確的,但對於每個JVM都不是這樣。從文檔中,「當Java虛擬機(VM)內的最後一個可顯示窗口被處置時,VM **可能**終止。」 (強調添加。)建議但不是必需的,應用程序終止,但不能保證。我想不出任何可以做到的事情,但我記得發現了其中的一些。 – Brian

+1

在這種情況下,請參閱我的評論。上面的'不好的做法'。 –

1

您可能正在擴展JFrame,因此當您關閉主窗口時它會關閉。

請粘貼一些代碼以獲取進一步的幫助。

2

對於對話框,您認爲是是你應該確保默認的關閉操作不會導致應用程序退出主窗口:

window.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
相關問題