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

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2019
    Messages : 7
    Points : 4
    Points
    4

    Par défaut JavaFX Empêcher fermeture fenêtre

    Bonjour, Je code actuellement un petit programme et j'aimerais empêcher la fermeture de ma fenêtre. J'ai essayé différentes solutions sur internet comme la fonction setDefaultCloseOperation() mais je n'y arrive pas. J'utilise JavaFX.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    this.stage = new Stage();
    		this.stage.setScene(this.scene);
     
    		fenetre=stage;
    		fenetre.setResizable(false); // Pas de modification de la taille de fenetre (évite les problèmes de redimensionnement)
    		fenetre.getIcons().add(this.logo); // Logo sur la fenetre
    		fenetre.setTitle("Accueil"); // Titre de la fenetre
    		fenetre.setDefaultCloseOperation(fenetre.DO_NOTHING_ON_CLOSE);
    		fenetre.show();
    Voilà la partie du code intéressante d'une de mes tentatives.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : août 2005
    Messages : 6 162
    Points : 22 119
    Points
    22 119
    Billets dans le blog
    43

    Par défaut

    WTF, faudra déjà que tu m'explique comment tu es arrivé à faire ça : fenetre.setDefaultCloseOperation(fenetre.DO_NOTHING_ON_CLOSE);
    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

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2019
    Messages : 7
    Points : 4
    Points
    4

    Par défaut

    Citation Envoyé par bouye Voir le message
    WTF, faudra déjà que tu m'explique comment tu es arrivé à faire ça : fenetre.setDefaultCloseOperation(fenetre.DO_NOTHING_ON_CLOSE);
    J'ai juste essayé des solutions sur internet pour d'autres projets. Je savais très bien que ça ne marcherait pas, c'était surtout pour illustrer ce que je voulais faire au cas où mes propos soient un peu flou.

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : août 2005
    Messages : 6 162
    Points : 22 119
    Points
    22 119
    Billets dans le blog
    43

    Par défaut

    Ok... du coup pour éviter que la fenêtre se ferme, il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
        @Override
        public void handle(WindowEvent event) {
            event.consume();
        }
    });
    ce qui doit pouvoir être simplifié en stage.setOnCloseRequest(event -> event.consume()); ou même stage.setOnCloseRequest(WindowEvent::consume);En consommant l'événement, on empêche sa propagation aux gestionnaires de bas niveaux qui s'occupent de la fermeture de la fenêtre.
    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

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2019
    Messages : 7
    Points : 4
    Points
    4

    Par défaut

    Citation Envoyé par bouye Voir le message
    Ok... du coup pour éviter que la fenêtre se ferme, il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
        @Override
        public void handle(WindowEvent event) {
            event.consume();
        }
    });
    ce qui doit pouvoir être simplifié en stage.setOnCloseRequest(event -> event.consume()); ou même stage.setOnCloseRequest(WindowEvent::.consume);En consommant l'événement, on empêche sa propagation aux gestionnaires de bas niveaux qui s'occupent de la fermeture de la fenêtre.
    Nickel ça marche parfaitement. Merci du coup de main.

    Cordialement

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/03/2009, 14h29
  2. Empécher une fenètre MDI de se fermer
    Par vanitom dans le forum MFC
    Réponses: 6
    Dernier message: 28/11/2005, 09h21
  3. Réponses: 7
    Dernier message: 22/11/2005, 12h43
  4. empêcher une fenêtre de perdre le focus (MDI)
    Par eponette dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/08/2005, 16h17
  5. Réponses: 2
    Dernier message: 23/06/2005, 09h06

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