2014-09-13 101 views
0

我正在使用基於鞦韆的應用程序登錄後我有一個菜單窗口包含不同的標籤打開不同的窗口,但是當我關閉其中一個自動關閉所有的窗口。指導我如何解決它?謝謝。關閉一個jframe窗口時,其他窗口自動關閉爲什麼?

+0

你能顯示一些代碼嗎? – BitNinja 2014-09-13 06:04:23

+0

是的等一下 – 2014-09-13 06:06:10

+0

我只使用dispose,因爲net-bean拖放自動設置setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); – 2014-09-13 06:11:14

回答

1

您正在致電setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE),以便在關閉此窗口時您的整個應用程序將關閉。這是因爲(如下所述)System.exit();將被調用。

根據應用程序的需要,您應該將其他值之一傳遞給setDefaultCloseOperation(int operation)

無論如何,如果您使用多個框架,請閱讀The Use of Multiple JFrames, Good/Bad Practice?


來源setDefaultCloseOperation

公共無效setDefaultCloseOperation(INT操作)

設置當用戶啓動一個 「關閉」 這個框架上,將默認執行的操作。您必須指定以下 選項之一:

  • DO_NOTHING_ON_CLOSE(在WindowConstants中定義):不執行任何操作;要求程序處理註冊WindowListener對象的 windowClosing方法中的操作。

  • HIDE_ON_CLOSE(在WindowConstants中定義):在調用任何註冊的WindowListener對象後自動隱藏框架。

  • DISPOSE_ON_CLOSE(在WindowConstants中定義):自動隱藏和調用任何註冊的WindowListener
    對象後處理該幀。

  • EXIT_ON_CLOSE(在JFrame中定義):使用System exit方法退出應用程序。僅在應用程序中使用它。

默認情況下,該值設置爲HIDE_ON_CLOSE。 此屬性值的更改導致屬性更改事件的觸發,其中 屬性名稱爲「defaultCloseOperation」。

0

通常您應該使用HIDE_ON_CLOSE。如果你想再次打開框架,你可以這樣做:

mainFrame mF = new mainFrame(); 
mF.setVisible(true); 

mainFrame是GUI類的名稱。