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 :

JOptionPane + KeyListener


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Par défaut JOptionPane + KeyListener
    Bonjour.

    Peut on faire en sorte que l'appuie sur la touche entrée du clavier produise le même effet que le clique de la souris sur un JOptionPane

    Voici comment je crée mon JOptionPane:

    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
     
     
     
    int s= JOptionPane.showOptionDialog(null,
       Language.getLine(9),
       Language.getLine(10),
       JOptionPane.DEFAULT_OPTION, 
       JOptionPane.QUESTION_MESSAGE,
       null,
       options,
       options[0]);
     
    switch(s)	{
      // Yes on click
      case 0:
        System.out.println("...... SAUVEGARDE A FAIRE ......");
        window.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
       break;
     
      //  No on click
      case 1:
        window.dispose();
        System.out.println("ne pas sauvegarder");
      break;
     
      // Cancel on click
      case 2:
        window.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        System.out.println("cancel");
      break;
     
    }
    Le truc c'est que sans faire de KeyListener si j'appuie sur entrée c'est tout le temps le cas ou c'est comme si je cliquer sur Yes. Et si je fais un KeyListener bah je sais pas sur quoi faire mes addKeyListener.

  2. #2
    Membre éclairé Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Par défaut
    bizarre ce que tu veux faire !
    néanmoins si tu veux faire ca , tu crées une classe qui etend JDialog et qui implemente actionlistener et keylistener
    tu crées tes 3 boutons ok, no cancel
    tu ajoutes addActionListener sur tes boutons pour refaire la mm chose que dans ton code
    tu ajoute un keylistener sur ta fenetre qui pointera sur les meme methode en fonction des touches que tu as attribués .

  3. #3
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 15
    Par défaut
    Mal fait ton code si t'appel comme sa ...

    Pas tres lisible et niveau fonctionnel regarde ton probleme ...

    Je suis d'accord avec biozaxx, surcharge l'objet et fait ton truc dessus ...

  4. #4
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Peut on faire en sorte que l'appuie sur la touche entrée du clavier produise le même effet que le clique de la souris sur un JOptionPane
    Mais quel effet veux-tu ? On ne fait pas un clic sur le JOptionPane, mais un clic sur l'un des boutons de la JOptionPane.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Par défaut
    euh oui je me suis mal exprimé.

    En fait je veux que si le focus est sur le bouton "Oui" de mon JOptionPane j'ai juste a appuyer sur Entrée et non pas seulement cliquer. En quoi est ce bizarre ?

    En fait ce que tu me dis de faire biozaxx c ni plus ni moins une boite de dialogue personnalisé. Donc c'est pas possible de garder mon JOptionPane et de faire intéragir ses boutons avec keyListener.

    Et redtux mon code tu le trouves pas lisible ?? En quoi il n'est pas lisible ?

  6. #6
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    En jouant avec la démo à http://java.sun.com/docs/books/tutor...ialogDemo.jnlp, tu verras que le comportement que tu décris est pris en compte.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Par défaut
    et bien non herve91 je viens de tester ton lien et lorsque je met le focus sur "Yes, please" et que j'appuie sur Entrée il me met la phrase qui s'affiche lorsque l'on clique sur "No eggs, no ham!". Par contre sur mon JOptionPane moi peut importe ou soit le focus et que j'appuie sur Entrée il fait comme si c'était Yes ...

  8. #8
    Membre éclairé Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Par défaut
    Citation Envoyé par @po©alypse
    Par contre sur mon JOptionPane moi peut importe ou soit le focus et que j'appuie sur Entrée il fait comme si c'était Yes ...
    y a pas un problème de conception dans ton truc
    Appuyer sur Entrée signifie (pour moi) valider les selections que j'ai à l'écran, or toi tu veux que entrée fasse la meme action quelque soit le bouton selectionné.
    enfin bon , je maintient ce que j'ai dis précédament sauf que si tu veux que "entrée" fasse comme si tu avais appuyé sur "Yes" et bien tu as uniquement une touche à associer au listener, mais la solution reste la même (ce qui veut dire abandonner ton JoptionPane, mais je ne pense pas que ca pose un problème)

    @+

Discussions similaires

  1. peut on ajouter un KeyListener à JOptionPane?
    Par gnaoui_9999 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 25/01/2010, 16h08
  2. [JOptionPane.ShowXXXDialog] Problème de modalité
    Par tipiak dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/07/2004, 17h14
  3. JOptionPane et JScrollPane
    Par calypso dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 15/06/2004, 12h25
  4. [Débutante] JInternalFrame et JOptionPAne
    Par ju972 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 24/05/2004, 15h03
  5. [SWT]équivalent des JOptionPane Swing
    Par Le Marlou dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 18/02/2004, 11h56

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