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?

Author: Karatawi, 2016-05-02

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.

 2
Author: James_D, 2016-05-02 22:44:01

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.

 1
Author: Rana Depto, 2016-05-02 21:30:26