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 :

[windowClosing] Ne pas fermer une application


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut [windowClosing] Ne pas fermer une application
    Bonjour

    Juste une petite difficultée que je n'arrive plus à comprendre. Pour une JFrame, j'ai édité le code suivant pour gérer les listeners de cette même fenêtre:
    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
     
    jFrame.addWindowListener(new WindowListener(){
    				public void windowOpened(WindowEvent e){}
    				public void windowClosing(WindowEvent e){
    					Object[] options = {"Yes", "No", "Cancel"};
    					int n = javax.swing.JOptionPane.showOptionDialog(JPCR.jFrame,
    							"Are you sure to quit JPCR ?",
    						    "Quit 1",
    						    javax.swing.JOptionPane.YES_NO_CANCEL_OPTION,
    						    javax.swing.JOptionPane.QUESTION_MESSAGE,
    						    null,
    						    options,
    						    options[0]);
    					if(n==0)
    						System.exit(0);
    				}
    				public void windowClosed(WindowEvent e){}
    				public void windowIconified(WindowEvent e){}
    				public void windowDeiconified(WindowEvent e){}
    				public void windowActivated(WindowEvent e){}
    				public void windowDeactivated(WindowEvent e){}
    			});
    Mon problème est le suivant : si je clique sur No ou Cancel, la fenêtre se ferme malgré tout, or, cela ne devrait pas être le cas.
    Quelle est mon erreur ?
    Merci à vous de vos réponses.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  2. #2
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    Pour ce que j'ai compris du windowClosing, celui ci est appelé qd l'evenement de fermeture est envoyé afin que l'on puisse executer des instructions de fin d'application (genre commit etc ...)

    C'est a dire que quoi que tu fasses ... à la fin de windowClosing, il y aura un System.exit(0); qui sera réalisé...

  3. #3
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    Moi perso pour palier le problème, je désactive le bouton de fermeture de la fenetre et j'ajoute un menu quitter dans les menuitems

  4. #4
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut
    Bonjour _beber85

    Merci de tes réponses. J'ai bien évidemment créer un menu Quitter. Mais bon, j'eus souhaité avoir le même effet entre la sélection de l'item quitter et le clic sur le bouton de fermeture de fenêtre
    Il doit y avoir un détail qui a dû m'échapper

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  5. #5
    Membre expérimenté Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Par défaut
    Ne serait-ce pas un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    qui traîne quelque part?

  6. #6
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut
    En effet, mais si j'enlève cette méthode, cela ne change pas le problème.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  7. #7
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Essaye d'appeler setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); sur ta JFrame. Je crois que par defaut la JFrame fait un DISPOSE_ON_CLOSE. En lui disant explicitement de ne rien faire tu pourras prevenir sa fermeture.

  8. #8
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    ohhhhhhhh putain !!!


    ata 5 min je crois que j'ai trouvé une astuce !!!!

  9. #9
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    CA MARCHEEEEEEEEEEEEEEEE !!!!!
    :p

    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
     
     
     
    		this.addWindowListener(new WindowListener(){
    			public void windowOpened(WindowEvent e) {}
    			public void windowClosing(WindowEvent e) {
                Object[] options = {"Yes", "No", "Cancel"};
                int n = javax.swing.JOptionPane.showOptionDialog(Fenetre.this,
                      "Are you sure to quit ?",
                       "Quit 1",
                       javax.swing.JOptionPane.YES_NO_CANCEL_OPTION,
                       javax.swing.JOptionPane.QUESTION_MESSAGE,
                       null,
                       options,
                       options[0]);
                if(n!=0){ 
                	Fenetre.this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
                }
    			}
    			public void windowClosed(WindowEvent e) {}
    			public void windowIconified(WindowEvent e) {}
    			public void windowDeiconified(WindowEvent e) {}
    			public void windowActivated(WindowEvent e) {
    				Fenetre.this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    			}
    			public void windowDeactivated(WindowEvent e) {}
          });

  10. #10
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut
    Cool ! Merci à Romain et à _beber85

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  11. #11
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut
    _beber85, il manque ces quelques lignes pour que ça marche correctement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(n!=0){
    		               jFrame.setDefaultCloseOperation(jFrame.DO_NOTHING_ON_CLOSE);
    		            } 
    		            else
    		            	System.exit(0);
    Mais sans doute est-ce dû au fait que j'ai enlevé plus haut jFrame.setDefaultCloseOperation(jFrame.EXIT_ON_CLOSE).

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  12. #12
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    Mince ... oui !

    J'ai oublié de coller cette ligne dsl

  13. #13
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Fenetre.this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
    Il faut mettre ca dans le constructeur de la fenetre, ou juste apres avoir construit la fenetre.

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

Discussions similaires

  1. Fermer une application Windows
    Par telecnop dans le forum Langage
    Réponses: 20
    Dernier message: 28/06/2006, 21h15
  2. Fermer une application externe
    Par jean tof dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/05/2006, 16h18
  3. Fermer une application exterieure
    Par P.B dans le forum Windows
    Réponses: 4
    Dernier message: 01/12/2005, 15h17
  4. [VB6]Fermer une application avec VB
    Par Mylou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/04/2003, 21h32
  5. Fermer une application à l'aide de OnIdle
    Par Thierry Rapp dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/08/2002, 12h44

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