2016-04-22 189 views
-1

我在尋找這種問題的不同答案,但它們不符合我的規範。我有一個類app1.java。它有public static void main函數,其中有一個JOptionPane.showConfirmDialog對象。點擊yes,我想運行另一個名爲「app2.java」的java文件並關閉當前運行的applocation(即app1.java)。 我試過這段代碼:關閉一個Java應用程序並啓動另一個應用程序

int response = JOptionPane.showConfirmDialog(null, "Do you want to restart?", "Restart Game?", 
       JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); 
      if (response == JOptionPane.NO_OPTION) { 
       System.exit(0); 
       } 
      else if (response == JOptionPane.YES_OPTION) { 
       new app2(); 
       } 
      else if (response == JOptionPane.CLOSED_OPTION) { 
       System.exit(0); 
       } 

的問題是,在點擊是的,一個新的窗口打開,但前者不會關閉。我無法嘗試System.exit,因爲它關閉了兩個窗口。應該做什麼?

+0

檢查這個http://stackoverflow.com/questions/9572931/java-swing-application-close-one-window-並打開另一個當按鈕被點擊 – ziLk

+1

並請閱讀本文:[多個JFrames](http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-or-不好的做法/ 9554657)在你惹惱你的應用程序用戶之前 –

+0

請注意,'new app2()'不一定與執行app2做同樣的事情,假設app2實際上是一個應用程序 - 也就是說,假設有一個main()方法在app2中。 – FredK

回答

2

如果您使用的是JFrame,那麼您可以使用dispose()方法關閉當前應用程序並使其可用於垃圾收集。

jframeObj.dispose(); 
new app2(); 
0

只需關閉框架,而不是整個應用程序:

Jframe jframe = new JFrame(); 
jframe.dispose(); 
new app2(); 
相關問題