IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

fermer une fenêtre et ne pas quitter l'application


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 212
    Par défaut fermer une fenêtre et ne pas quitter l'application
    Bonsoir tout le monde,
    j'ai une application de test composée de deux fenêtre: principale, fen1.
    pour afficher la fenêtre fen1 depuis la fenêtre principale je clique sur un button: show. voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Parent root = (Parent) FXMLLoader.load(getClass().getResource("FXML_show.fxml"));
            Scene scene = new Scene(root);
            Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
            //stage.initModality(Modality.APPLICATION_MODAL);
            stage.setScene(scene);
            stage.show();
    mon problème c'est que la fermeture de la fenêtre fen1 entraîne automatiquement la fermeture de l'application. j'aimerais quand je clique sur (X) je dois revenir sur la fenêtre principale.
    merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    bonsoir,

    au niveau de la 2nde fenêtre tu peux invoquer la méthode start(Stage stage), puisqu'elle est le point d'entrée de l'appli javafx, via un bouton(revenir).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //classe controlleur  gérant la 2ème fenêtre
         private Teste main;
     
    @FXML
        private void handleButtonRetour(ActionEvent event) throws Exception {
     
     
            main.start(main.getStage());//appel à la méthode start() de la classe Teste =>retour à la fenêtre principale
     
        }
    dans la classe Teste contenant la méthode start
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    public class Teste  extends Application {
        private Stage                  stage;
        private AnchorPane             rootLayout;
        public void start(Stage _stage) throws Exception {
     
            stage = _stage;
     
     
                FXMLLoader loader = new FXMLLoader(Main.class.getResource("views/vuePrincipale.fxml"));
     
                rootLayout = (AnchorPane) loader.load();
     
                Scene scene = new Scene(rootLayout);
               stage.setScene(scene);
              //...appel au contrôlleur
     
    }
    //getter et setter pour stage
     
    }

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Quelque chose comme ca peut-etre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public class TestClosingFrame extends Application {
     
        @Override
        public void start(Stage primaryStage) {
            final Button button = new Button("Show...");
            button.setOnAction(actionEvent -> {
                final Window parent = button.getScene().getWindow();
                final EventHandler<WindowEvent> oldHandler = parent.getOnCloseRequest();  // Normalement c'est null.                  
                final Stage stage2 = new Stage();
                stage2.initOwner(parent);
                stage2.setTitle("Stage #2");
                parent.setOnCloseRequest(windowEvent -> {
                    stage2.close();
                    windowEvent.consume();
                });
                stage2.setOnHidden(windowEvent -> {
                    parent.setOnCloseRequest(oldHandler);
                });
                stage2.show();        
            });
            final StackPane root = new StackPane();
            root.getChildren().setAll(button);
            final Scene scene = new Scene(root, 500, 500);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Stage #1");
            primaryStage.show();
        }
     
        public static void main(String[] args) {
            launch(args);
        }
    }
    A noter qu'une API de boites de dialogues devrait faire son apparition dans JDK8_40 même si je pense que ce genre de cas (fermeture du dialogue en cliquant sur le bouton fermer de la fenêtre principale) ne sera probablement pas géré.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    On est pas en Swing
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fermer une fenêtre et pas toutes les fenêtres ouvertes
    Par Sinakhine dans le forum Général Java
    Réponses: 4
    Dernier message: 29/10/2012, 13h06
  2. Ne pas fermer une fenêtre DIV
    Par BRUNO71 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 28/10/2012, 10h25
  3. Fermer une fenêtre depuis une autre...
    Par nicolb dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/03/2005, 10h22
  4. Comment fermer une fenêtre quand la souris et clavier sont inactifs ?
    Par Goldenkiller dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/12/2004, 22h09
  5. Fermer une fenêtre au bout d'un certain temps.
    Par cprogil dans le forum Composants VCL
    Réponses: 5
    Dernier message: 27/11/2003, 18h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo