JavaFX 2.0: fermer une scène (fenêtre)

je fais une application dans JavaFX 2.0. De ma fenêtre principale, je démarre une nouvelle fenêtre avec quelques réglages. Après avoir réglé les paramètres, Je veux appuyer sur un bouton comme "Enregistrer les modifications".

je voudrais que ce bouton pour enregistrer les modifications et fermer la fenêtre. En fermant, je veux dire en le tuant, en ne le plaçant pas à l'arrière-plan ou en fixant la visibilité. J'ai lu à propos d'une étape de méthode.fermer()

http://docs.oracle.com/javafx/2.0/api/javafx/stage/Stage.html

comme vous pouvez le voir c'est similaire à la méthode Hide(), qui ne cache que la fenêtre, ne la fermant pas.

Q: Quelqu'un connaît une méthode ou un code qui pourrait m'aider à fermer une fenêtre?

Toute aide sera grandement appréciée. Merci!

27
demandé sur haakonlu 2012-04-18 19:11:04

3 réponses

la documentation que vous avez liée indique que stage.close():

clôt cette étape. Cet appel est équivalent à masquer().

hide() est équivalent à close() et close() ferme la scène, puis hide() ferme la scène.

lorsque toutes les étapes d'une application sont cachées (ou fermées si vous le souhaitez, parce que c'est la même chose), l'application disparaît. Confus, je sais, mais C'est juste la façon dont L'équipe de JavaFX a décidé de nommer et mettre en œuvre les actions.

si désiré, le Plate-forme.setImplicitExit (booléen) la méthode peut être utilisée pour désactiver le comportement par défaut de quitter l'application lorsque la dernière fenêtre est fermée ou cachée.

44
répondu jewelsea 2012-12-19 21:43:04

Cela a fonctionné parfaitement pour moi (avec l'importation pour Node):

((Node)(event.getSource())).getScene().getWindow().hide();
17
répondu Wizard4891 2014-02-21 15:54:33

pour les utilisateurs également intéressés par l'écoute de l'événement de la fenêtre close, ajouter un filtre d'événement à la fenêtre: (cet événement est également déclenché lorsque l'utilisateur appuie sur le bouton de fermeture de L'application)

    yourWindow.addEventFilter(WindowEvent.WINDOW_CLOSE_REQUEST, event -> {
        // add your code here to handle the close event
        // use event.consume(); to prevent the application from closing
    });

Si vous avez besoin de fermer l'application avec un bouton de fermeture, dans le onAction méthode du bouton déclenche l'événement :

 yourWindow.fireEvent(new WindowEvent(window, WindowEvent.WINDOW_CLOSE_REQUEST));
1
répondu Domenico 2018-09-08 12:33:00