2016-04-22 215 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(); 
相关问题