2016-04-22 15 views
-1

Ich sah verschiedene Antworten für diese Art von Frage, aber sie nicht meine Spezifikationen erfüllen. Ich habe eine Klasse app1.java. Es hat die public static void main Funktion, in der es ein JOptionPane.showConfirmDialog Objekt gibt. Wenn ich auf yes klicke, möchte ich eine weitere Java-Datei namens "app2.java" ausführen und das aktuell laufende Programm schließen (d. H. App1.java). Ich habe versucht, diesen Code:Schließen Sie eine Java-Anwendung und starten Sie eine andere Anwendung

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); 
       } 

Das Problem ist, dass ja auf klicken, wird ein neues Fenster öffnet, aber das frühere nicht schließt. Ich kann System.exit nicht versuchen, da es beide Fenster schließt. Was soll getan werden?

+0

Kontrolle dieses http://stackoverflow.com/questions/9572931/java-swing-application-close-one-window- und -öffnen-eine andere-wenn-Taste-geklickt wird – ziLk

+1

Und bitte lesen Sie dies: [Mehrere JFrames] (http://StackOverflow.com/Questions/9554636/the-use-of-multiple-Jframes-good-oder- bad-practice/9554657) bevor Sie Ihre Anwendungsbenutzer zu sehr verärgern –

+0

Beachten Sie, dass 'neue app2()' nicht unbedingt dasselbe tut wie app2, vorausgesetzt, dass app2 tatsächlich eine Anwendung ist - vorausgesetzt, es gibt eine main() -Methode in App2. – FredK

Antwort

2

Wenn Sie JFrame verwenden, können Sie die Methode dispose() verwenden, um die aktuelle Anwendung zu schließen und für die Garbage Collection verfügbar zu machen.

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

schließen Sie einfach den Rahmen, aber nicht die gesamte Anwendung:

Jframe jframe = new JFrame(); 
jframe.dispose(); 
new app2(); 
Verwandte Themen