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

AWT/Swing Java Discussion :

Action à la fermeture du Frame (WindowsListner)


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut Action à la fermeture du Frame (WindowsListner)
    Bonjour,

    Afin de demander la confirmation de la fermeture de l'appli par l'utilisateur, j'ai mis en place dans le methode windowClosing de la frame :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void windowClosing(WindowEvent e) {
    		// TODO Auto-generated method stub
    		int reponse = JOptionPane.showConfirmDialog(null, "Voulez-vous vraiment quitter ?", "Confirmation", JOptionPane.YES_NO_OPTION);
    		if (reponse == JOptionPane.YES_OPTION){
    			System.exit(0);
    		}else{
    			return;
    		}
    	}
    Lorsqu'on ferme la frame par la petite croix de fermeture, une boîte la boîte de dialogue de fermeture affiche et c'est lorsqu'on clique sur YES que l'appli se ferme. Le problème est que lorsqu'on clique sur NO, normalement la frame ne devrait pas se fermer mais elle se ferme quand même . Ce que je ne comprend pas trop.
    Pouvez-vous m'aider s'il vous plaît ?

  2. #2
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Allo les amis,
    je suis vraiment désolé de vous déranger. En fait j'ai effectué une petite recherche pendant ce temps. J'ai trouver quelque chose : Il fallait ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
    Pour ceux que ça pourrait interresser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void windowClosing(WindowEvent e) {
    		//MainFrm fenetre = null;
    		fenetre = new MainFrm();
    		fenetre.addWindowListener(fenetre);
    		int reponse = JOptionPane.showConfirmDialog(fenetre, "Voulez-vous vraiment quitter ?", "Confirmation", JOptionPane.YES_NO_OPTION);
    		if (reponse == JOptionPane.YES_OPTION){
    			System.exit(0);
    		}else{
    			setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
    			return;
    		}
    	}
    Merci à tous.

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Par défaut
    Bonjour,

    L'utilisation du setDefaultCloseOperation ne devrait pas avoir lieu dans cette condition. En effet il est là pour mettre en place une opération par défaut à la fenêtre.

    Concrètement l'action par défaut pour la fermeture de la fenêtre : DO_NOTHING
    Le WindowListener reçoit malgré tout les évènement.
    Il ne faut pas utiliser la méthode setDefaultCloseOperation comme un "Cancel closing".

    Ci-joint un petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    JFrame f = new JFrame("Test");
    f.setSize(200,200);
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    f.addWindowListener(new WindowListener(){
     
    public void windowClosing(WindowEvent arg0) {
    	int reponse = JOptionPane.showConfirmDialog(null, "Voulez-vous vraiment quitter ?", "Confirmation", JOptionPane.YES_NO_OPTION);
    	if (reponse == JOptionPane.YES_OPTION){
    		System.exit(0);
    	}
    }
    ....
    En espérant que cette recommandation t'aidera dans ton code.

    A bientôt
    Arnaud

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

Discussions similaires

  1. Faire des actions à la fermeture d'une form.
    Par elix63 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 22/05/2008, 12h39
  2. Action à la fermeture d'une application extérieure
    Par Archimède dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/02/2008, 19h36
  3. GUI, Singleton, fermeture de frame, etc..
    Par Sylver--- dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 14/06/2007, 16h57
  4. Action à la fermeture d'une JFrame
    Par Heimdal dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 26/04/2006, 18h24
  5. Exécuter une action à la fermeture d'une fenêtre
    Par wwave dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 28/07/2005, 15h15

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