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 :

escape & JDialog


Sujet :

AWT/Swing Java

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut Comment intercepter un evènement clavier
    salut à tous,
    je voudrais que quand je presse la touche ESC, la JDialog se referme seulement je n'ai pas l'impression que mon code marche.
    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
     
    public class MaDialog extends JDialog{
    public MaDialog(JFrame frame){
    super(frame);
    this.getGlassPane().addKeyListener(
                    new KeyAdapter() {
                        public void keyPressed(KeyEvent e) {
                            int code = e.getKeyCode ();
                            if (code == KeyEvent.VK_ESCAPE){
                                CreationPane.this.dispose();
                            }
                            e.consume();
                        }
     
                    }
            );
     
            this.setBounds(300, 10, 500, 760);
            this.setVisible(true);
     
        }
    si quelqu'un voit le problème...
    Peut peut-être que je n'ecoute pas le bon Pane
    merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Je tien à preciser que j'ai regardé dans la FAQ, sur internet sans y trouver quel est le problème de mon code. Alors si quelqu'un pouvait m'aider je lui en serait reconnaissant

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Points : 192
    Points
    192
    Par défaut
    Bonjour,

    Par hasard, il ne faudrait pasque tu ajoute ton écouteur sur ta JDialog directement plutot que surle GlassPane.


  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    j'ai déja essayer mais je ça ne marche pas mieux. Je me demande s'il n'y a pas des spécification lié au JDialog pour les evenements. Normalement, il me semble le glassPane(panneau placer au dessus du contentPane et du JMenuBar) sert à intercepter tout les evenement de la fenetre mais...

  5. #5
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    A pire utilises un AWTEventListener, tu seras sur de chopper l'intégralité des events de ton appli.

    ++
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    J'ai trouvé la methode
    Toolkit.getDefaultToolkit().addAWTEventListener(app_EcouteurEventClavier, AWTEvent.KEY_EVENT_MASK);
    Mais je ne sais pas vraiment comment ça marche.
    Peut tu me mettre un petit exemple pour voir comment on filtre l'evenement et on le gère.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Points : 192
    Points
    192
    Par défaut
    Moi, j'ai essayé ce code chez moi et ça marche, version 1.5 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    this.addKeyListener(new KeyAdapter(){
        public void keyPressed(KeyEvent e){
            if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
            dispose();
        }
    });

  8. #8
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    en effet il marche sur une JFrame mais pas sur ma JDialog Je crois que l'evenement n'est meme pas déclencher

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Points : 192
    Points
    192
    Par défaut
    Ben moi je l'ai testé sur une JDialog et ça marché, alors je sais pas où est ton problème.

    Bonne chance.

  10. #10
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    en faite ça marche tant que je ne rajoute pas de sousPaneau à ma JDialog
    après ça bloque

  11. #11
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    j'ai suivie les indications de sinok et ça marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener(){
                public void eventDispatched(AWTEvent event) {
                    if(((KeyEvent)event).getKeyCode() == KeyEvent.VK_ESCAPE){
                        dispose();
                    }
                }
     
            } , AWTEvent.KEY_EVENT_MASK);
    En faite j'écoute l'application entière, je suppose que j'était obligé sinon si le focus n'est pas au bonne endroit l'évenement n'est pas déclenché.
    Merci à tous.

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

Discussions similaires

  1. [debutant] Gérer escape sur un JDialog
    Par debutant java dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 01/09/2004, 17h45
  2. [JDialog] Modification dans une fenêtre
    Par cefabien dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 01/10/2003, 13h18
  3. Lire rapidement la touche Escape
    Par BernardLimont dans le forum Assembleur
    Réponses: 11
    Dernier message: 16/07/2003, 21h09
  4. Récuperer les icons des JDialog
    Par Pro_Fete dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 17/04/2003, 13h00

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