So habe ich 2 Stufen, eine ist die Hauptbühne und die andere ist ein Pop-up-Bildschirm. Wenn der Popup-Bildschirm angezeigt wird, können Sie ihn schließen, indem Sie das "x" oben links (oder oben rechts, je nach Betriebssystem) drücken. Gibt es eine Möglichkeit, die Hauptbühne zu schließen, wenn Sie den Popup-Bildschirm schließen?Schließen Sie die Plattform nach dem Schließen eines Popups | JavaFX
Antwort
Stage
und Popup
erben ein onHidden
property von Window
. Dies ist ein Handler, der sofort aufgerufen wird, nachdem das Fenster ausgeblendet wurde (durch irgendeinen Mechanismus). Sie können Platform.exit()
im Handler aufrufen, um die Anwendung zu beenden:
popup.setOnHidden(event -> Platform.exit());
Beachten Sie, dass Platform.exit()
allgemein System.exit(0)
bevorzugt wird: Aufruf System.exit(...)
wird die Application
‚s stop()
Methode nicht zulassen, dass aufgerufen werden, so dass Sie jede umgehen kann Ressourcenbereinigung, die Ihre Anwendung durchführt.
Welches ist besser in der Regel zwischen 'Platform.exit()' und 'System.exit (...)' zu verwenden? Ich habe einige Stackoverflow-Fragen gelesen und festgestellt, dass [einige Leute] (http://stackoverflow.com/questions/14938279/javafx-application-still-running-after-close) beide verwenden. Und einige von ihnen sind nicht daran interessiert es zu benutzen, da es manchmal nicht funktioniert. –
Vielen Dank, das hat den Job gemacht! – Karatawi
Es gibt ein Ereignis mit dem Namen setOnCloseRequest
. Wenn Sie ein Alert
Popup-Fenster öffnen.
Alert popup = new Alert(AlertType.INFORMATION);
Dann ist Ihre Lösung:
alert.setOnCloseRequest(new EventHandler<DialogEvent>()
{
@Override
public void handle(DialogEvent t)
{
System.exit(0);
}
});
Else, wenn Sie ein anderes Fenster schließen möge mit seinem Besitzer, dann benutzen Sie einfach es ist stage
und ersetzen DialogEvent
mit WindowEvent
.
'onCloseRequest' ist nicht das richtige Ereignis, das hier verwendet wird: Es wird nur aufgerufen, wenn eine" externe "Anfrage zum Schließen des Fensters vorliegt; normalerweise bedeutet dies, dass der Benutzer die Taste zum Schließen des systemeigenen Fensters drückt. Es ist möglich, die Anfrage zu verweigern, in welchem Fall der 'onCloseRequest'-Handler aufgerufen wird, obwohl das Fenster nicht geschlossen wird. –
- 1. Chrome-Erweiterung: Schließen Sie die Hintergrundseite nach dem Schließen. Chrome
- 2. Schließen Sie alle Popups in Jquery Mobile
- 3. Schließen Sie das Programm nach dem Drücken von "Schließen"
- 4. Refresh übergeordnetes Fenster nach dem Schließen eines Popup-Fensters
- 5. IntelliJ IDEA Menü Popups schließen zu schnell
- 6. wie nach dem Schließen Programm
- 7. So schließen Sie Multi-Bild-Popups auf einer Schaltfläche
- 8. Schließen Sie die geöffnete Konsole nach dem Schließen der PyQt4 GUI
- 9. Schließen Sie die Schaltfläche funktioniert nicht nach dem Scrollen
- 10. Schließen Sie das Popup nach dem Klicken auf die Schaltfläche
- 11. JavaFX: Schließen der Stage-Prozedur
- 12. Schließen Sie die Datei nach LinkFormat.Update
- 13. Qt Call Form in Hauptfunktion nach dem Schließen eines Formulars
- 14. UIAlertController bleibt wieder nach dem Schließen
- 15. Nach dem Schließen Modal grauen Hintergrund bleibt
- 16. Schließen ColorBox iFrame nach dem Senden
- 17. Schließen eines Formulars aus dem Load-Handler
- 18. WPF: Anwendung heruntergefahren nach dem Schließen eines Fensters
- 19. Xcode findet kein Framework nach dem Schließen
- 20. Schließen eines Dialogfelds nach einer Verzögerung
- 21. Place Picker Automatisch nach dem Start schließen
- 22. Schließen eines Datenbank-Handle
- 23. Bootstrap: Bildlaufleiste verschwindet nach dem Schließen modal
- 24. Verhindern Screenshot nach dem Schließen der Anwendung
- 25. Reduzieren wiederholter Wörter nach dem Schließen Compiler
- 26. Erzwungenes Schließen nach dem Hinzufügen benutzerdefinierter ImageView
- 27. Die Tabellenansicht wird nach dem Schließen des Popover nicht aktualisiert?
- 28. Müssen Sie den Scheduler nach dem geplanten Job schließen?
- 29. Schließen Sie das Anmeldeformular nach dem Öffnen von FormMain (MDI)
- 30. Schließen Sie ein Lesezeichen nach dem Absenden des Formulars
Rufen Sie 'Platform.exit()' im close-Hook auf ('popup.setOnCloseRequest (...)'). – Ironcache
'onCloseRequest' ist hier nicht wirklich das richtige Ereignis: Das wird aufgerufen, wenn der Benutzer auf die Schließen-Schaltfläche für das Popup klickt. An diesem Punkt kann ein Veto eingelegt werden, sodass das Popup möglicherweise nicht wirklich schließt. Sie sollten 'onHidden()' verwenden. –