Fermer la plateforme après avoir fermé une fenêtre contextuelle | JavaFX
J'ai Donc 2 étapes, la première est la scène principale et l'autre est un écran pop-up. Lorsque l'écran pop-up apparaît, vous pouvez le fermer en appuyant sur le " x " en haut à gauche (ou en haut à droite selon votre système d'exploitation). Existe-t-il un moyen de fermer la scène principale chaque fois que vous fermez l'écran contextuel?
2 answers
Stage
et Popup
hériter d'une onHidden
la propriété à partir de Window
. C'est un gestionnaire qui est appelée immédiatement après la fenêtre est masquée (par un mécanisme). Vous pouvez appeler Platform.exit()
dans le gestionnaire afin de quitter l'application:
popup.setOnHidden(event -> Platform.exit());
Notez que Platform.exit()
est généralement préféré à System.exit(0)
: appeler System.exit(...)
ne permettra pas d'appeler la méthode Application
de stop()
, vous pouvez donc contourner tout nettoyage de ressources effectué par votre application.
Il y a un Événement nommé setOnCloseRequest
. Si vous ouvrez une fenêtre contextuelle Alert
.
Alert popup = new Alert(AlertType.INFORMATION);
Alors votre solution est:
alert.setOnCloseRequest(new EventHandler<DialogEvent>()
{
@Override
public void handle(DialogEvent t)
{
System.exit(0);
}
});
Sinon si vous voulez fermer une autre fenêtre avec son propriétaire, utilisez simplement son stage
et remplacez DialogEvent
par WindowEvent
.