88 votes

Comment fermer une application JavaFX à la fermeture de la fenêtre ?

Dans Swing, vous pouvez simplement utiliser setDefaultCloseOperation() pour fermer l'ensemble de l'application lorsque la fenêtre est fermée.

Cependant, je ne trouve pas d'équivalent dans JavaFX. J'ai plusieurs fenêtres ouvertes et je veux fermer l'application entière si une fenêtre est fermée. Quel est le moyen de faire cela en JavaFX ?

Edita:

Je comprends que je peux passer outre setOnCloseRequest() pour effectuer une opération sur la fermeture de la fenêtre. La question est de savoir quelle opération doit être effectuée pour mettre fin à l'ensemble de l'application.

stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
    @Override
    public void handle(WindowEvent event) {
        stop();
    }
});

En stop() définie dans la méthode Application ne fait rien.

0voto

GetContentPane.remove(jfxPanel) ;

essayez-le ( :

-1voto

mourad kirat Points 1

Dans le bouton d'action, essayez ceci : stage.close() ;


exemple :

Stage stage =new Stage() ;

BorderPane Root=new BorderPane() ;

Scène scene=new Scene() ;

Bouton b= nouveau bouton("bouton nom") ;

       b.setOnAction(new EventHandler<ActionEvent>() {

       @Override
        public void handle(ActionEvent event) {

                 stage.close();

            }
            });

Root.getChildren().add(b) ;

stage.setTitle("") ;

stage.setScene(scene) ;

stage.show() ;

-2voto

Sap Points 364

Vous DEVEZ surcharger la méthode "stop()" dans votre instance d'application pour que cela fonctionne. Si vous avez surchargé la méthode "stop()", même si elle est vide, l'application s'arrête de manière élégante après la fermeture de la dernière étape (en fait, la dernière étape doit être l'étape principale pour que cela fonctionne complètement comme prévu). Aucun appel supplémentaire à Platform.exit ou setOnCloseRequest n'est nécessaire dans ce cas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X