zu:
Gibt es eine Möglichkeit die JPanel offen zu halten oder gibt es einen besseren Befehl als System.exit()?
Die beste Lösung: Rufen Sie nicht System.exit(...)
. Warum? Da System.exit(0)
die JVM schließt, werden alle Java-Prozesse, die auf dieser JVM ausgeführt werden, heruntergefahren, wenn System.exit(0)
aufgerufen wird.
Wie für "bessere Befehl", hängt alles von Ihrer Notwendigkeit ab. Wenn Sie nur ein Fenster wie einen JDialog schließen möchten, rufen Sie myWindow.setVisible(false);
. Wenn Sie es schließen und Ressourcen freigeben möchten, dann myWindow.dispose();
.
Hinweis: Ich vermute, dass möglicherweise mehrere Fenster geöffnet sind, möglicherweise mehrere JFrames. Wenn ja, ich bitte Sie eindringlich, zu lesen: The Use of Multiple JFrames, Good/Bad Practice?
Sie auch Kommentare geschrieben:
ich die JPanel offen halten möchte, aber die Simulation von mehr ausgeführt werden. Ich muss den Sim stoppen, wenn bestimmte Bedingungen erfüllt sind. so schrieb ich einen Anschlag()
So Ihre Frage in der Tat ist ein XY Problem wo Sie fragen, wie einen spezifischen Code Problem zu lösen (halten einen JPanel offen nach dem Aufruf System.exit(0)
), wenn die beste Lösung, die eine ganz andere zu verwenden ist Ansatz. Besser, dass Sie uns das Gesamtproblem mitteilen, das Sie lösen möchten, und nicht, wie Sie es gerade lösen möchten, da System.exit nicht Teil der besten Lösung sein wird.
Wahrscheinlich ist die beste Lösung, Ihr Simulationsmodell von seiner Ansicht (der GUI) zu trennen, um dem Modell Funktionalität zu geben, die es ermöglicht, ohne die JVM zu stoppen - unmöglich zu sagen, wie gegeben unser derzeitiges Wissen über Ihr Problem - und dann das Stoppen des Modells in der Ansicht widerspiegeln, wiederum ohne das System herunterzufahren.
Der Schlüssel zu all dies in den Details Ihres aktuellen Programms liegen, einschließlich der Logik, die Ihre Simulation zugrunde liegt, und wenn Sie das konkretisieren und wahrscheinlich mehr hilfreiche Antworten brauchen, sind Sie wieder zu verbessern, gehen zu wollen, Ihre Frage, die uns mit sehr viel konkreteren Informationen über Ihren Code, Ihr Problem und mit der Veröffentlichung von relevantem Code versorgt, vorzugsweise als minimal example program.
Die JPanel Teil der JVM ist. System.exit beendet die JVM. Wenn Sie nicht möchten, dass JPanel verschwindet, können Sie die JVM nicht beenden. – Compass
Um zu wissen, was Sie in Ihre Frage aufnehmen sollten, damit Sie bessere Antworten erhalten, lesen Sie bitte die Abschnitte [Fragen stellen] (http://stackoverflow.com/help/how-to-ask). –
Re '' nicht sicher, warum eine Down-Abstimmung Ich habe eine einfache Frage gestellt und jemand hat darauf geantwortet. '' - Ich bin mir auch nicht sicher, aber es könnte etwas damit zu tun haben, dass Ihre Frage sehr unklar bleibt und Leute dazu bringt, unklar zu schreiben Antworten. Versuchen Sie nochmals, es zu verbessern, damit wir das eigentliche Problem ** und den Code ** verstehen. –