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

Agents de placement/Fenêtres Java Discussion :

Problème JOptionPane OK_CANCEL_OPTION


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 213
    Points : 96
    Points
    96
    Par défaut Problème JOptionPane OK_CANCEL_OPTION
    Bonjour à tous,

    Petit problème idiot je pense ou peut-être un bogue.
    Je veux faire la distinction entre le bouton ok et annuler :
    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
     
    public static void closeApplication() {
    	IhmConverter ihm = IhmConverter.getInstance();
    	JOptionPane option = new JOptionPane();
     
    	int retour = option.showConfirmDialog(ihm, Final.getMsgExit(),
    			Final.getMsgExitTitle(), option.OK_CANCEL_OPTION);
     
    	if (retour == option.OK_OPTION) {
    		ihm.setVisible(false);
    		ihm.dispose();
    		System.exit(0);
    	} else if (retour == option.CANCEL_OPTION) {
    		//do nothing
    	}
    }
    J'ai vérifié les valeurs de la variable retour qui renvoi bien 0 pour ok et 2 pou annuler idem pour la variable option.
    Donc pourquoi ne respecte il pas ma condition ?

    Merci d'avance à celui qui verra le problème

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 213
    Points : 96
    Points
    96
    Par défaut
    C'est bon, mais j'ai esquivé le problème avec un showMessageDialog :
    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
     
    public static void closeApplication() {
    	IhmConverter ihm = IhmConverter.getInstance();
     
    	Object[] options = { 
    		"Yes, please", "Oops no!" 
    	};
    	int retour = JOptionPane.showOptionDialog(ihm, Final.getMsgExit(),
    			Final.getMsgExitTitle(), JOptionPane.YES_NO_OPTION,
    			JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
     
    	if (retour == JOptionPane.YES_OPTION) {
    		ihm.setVisible(false);
    		ihm.dispose();
    		System.exit(0);
    	} else if (retour == JOptionPane.NO_OPTION) {
    		// do nothing
    	}
    }
    Voili <-> voilou

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par nadong94 Voir le message
    J'ai vérifié les valeurs de la variable retour qui renvoi bien 0 pour ok et 2 pou annuler idem pour la variable option.
    Donc pourquoi ne respecte il pas ma condition ?
    Que veux-tu dire ? En exécutant ton code, si tu cliques sur OK, la première condition est vraie, et si tu cliques sur Annuler, elle ne l'est pas, et la seconde l'est : donc tout fonctionne correctement.
    Seulement, une chose : inutile d'instancier JOptionPane : la méthode showConfirmMessage est statique (d'ailleurs tu le fais dans le second programme).

    En revanche, s'il n'y a pas de différence de valeur en JOptionPane.OK et JOptionPane.YES (parce que OK et YES (OUI) signifie qu'on accepte la proposition), JOptionPane.NO et JOptionPane.CANCEL sont bien différents, parce que :

    • NO (NON), c'est refuser la proposition
    • CANCEL (ANNULER), c'est annuler le traitement
    • Même lorsqu'il y a 2 propositions, alors que CANCEL pourrait signifier la même chose que NON, puisqu'il n'y a que 2 choix, ceci par cohérence (on teste la valeur CANCEL toujours de la même façon, qu'il y ait une, deux, trois ou 42 propositions).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 213
    Points : 96
    Points
    96
    Par défaut
    Merci pour ces précisions.
    Le problème était : que je clique sur ok ou bien sur cancel il fermer l'application plutôt que simplement la boite de dialogue, mais peut-être que s'est le comportement normal d'un cancel ? Quoi qu'il en soit, c'est vrai que j'ai intenter la JOptionPane bêtement au début, j'ai donc en effet rectifier le ça. Quoi qu'il en soit maintenant avec la méthode showMesssageDialogue j'ai pu le faire à ma sauce donc c'est cool merci encore...

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par nadong94 Voir le message
    Le problème était : que je clique sur ok ou bien sur cancel il fermer l'application plutôt que simplement la boite de dialogue, mais peut-être que s'est le comportement normal d'un cancel ?
    Non, ce n'est pas normal. De toute manière, les boutons du JOptionPane ne font pas fermer l'application : uniquement le dialogue. C'est le traitement que tu fais après qui ferme ou pas l'application. Et d'après le code que tu montres, il n'y a aucune raison que l'appui de Cancel provoque la fermeture.

    Citation Envoyé par nadong94 Voir le message
    Quoi qu'il en soit maintenant avec la méthode showMesssageDialogue j'ai pu le faire à ma sauce donc c'est cool merci encore...
    Oui, enfin, ce n'est pas showMessageDialog, mais showOptionDialog que tu utilises.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 213
    Points : 96
    Points
    96
    Par défaut
    Autant pour moi j'ai écrit un peu vite...
    Quant au bouton cancel en effet il ferme complètement l'application, c'est pourquoi avec le code que j'ai posté, ça me paresser très étrange.

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

Discussions similaires

  1. Problème avec JOptionPane
    Par Shurka dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/07/2007, 22h49
  2. [JOptionPane] problème de couleur
    Par SheikYerbouti dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 28/05/2007, 00h39
  3. [JoptionPane] Problème à la saisie
    Par michaeljeru dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 02/04/2007, 00h00
  4. [JOptionPane] Problème avec une boite de sauvegarde
    Par lanfeustdetroll dans le forum Agents de placement/Fenêtres
    Réponses: 15
    Dernier message: 03/08/2005, 17h33
  5. [JOptionPane.ShowXXXDialog] Problème de modalité
    Par tipiak dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/07/2004, 16h14

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