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 :

[KeyEvent] Combinaison touche clavier et listener


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut [KeyEvent] Combinaison touche clavier et listener
    Bonjour, je souhaite faire un keyListener pour une combinaison de touche (Ctrl + Page-Up). Savez vous si cela est possible ?
    J'ai rédigé ce code là mais ca ne marche pas du tout. Ai- je mal représnter la combinaison de touches ?

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    import java.awt.event.*;
    import java.awt.event.KeyEvent ;
    /**
     * @author le
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    public class DocumentAreaKeyListener implements KeyListener{
     
    	public DocumentAreaKeyListener ()
    	{
     
    	}
     
    	/* (non-Javadoc)
    	 * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
    	 */
    	public void keyPressed(KeyEvent arg0) {
    		// TODO Auto-generated method stub
    		if (arg0.getKeyCode() == KeyEvent.CTRL_MASK + KeyEvent.VK_PAGE_UP)
    		{
    			System.out.println("coucou");
    		}
     
    	}
    	/* (non-Javadoc)
    	 * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
    	 */
    	public void keyReleased(KeyEvent arg0) {
    		// TODO Auto-generated method stub
    		if (arg0.getKeyCode() == KeyEvent.CTRL_MASK + KeyEvent.VK_PAGE_UP)
    		{
    			System.out.println("coucou");
    		}
     
    	}
    	/* (non-Javadoc)
    	 * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
    	 */
    	public void keyTyped(KeyEvent arg0) {
    		// TODO Auto-generated method stub
    		if (arg0.getKeyCode() ==KeyEvent.CTRL_MASK + KeyEvent.VK_PAGE_UP)
    		{
    			System.out.println("coucou");
    		}
     
    	}
    }
    Merci d'avance


    [Modéré par Debernad]
    [Ajout des balises CODE]
    [Ajout de tag dans le titre]
    Lire les régles du forum

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 50
    Points : 48
    Points
    48
    Par défaut
    retourne un int

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    KeyEvent.CTRL_MASK + KeyEvent.VK_PAGE_UP
    est donc un entier, je pense qu'il peut y avoir plusieur combinaison de touche pour le meme resultat.

    je pense qu'il fau mieu gérer un liste dans laquelle tu stocke les touches appuyées:
    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
    33
    34
    35
    36
     
    public class DocumentAreaKeyListener implements KeyListener{ 
     
    private ArrayList liste_touche;
     
       public DocumentAreaKeyListener () 
       { 
           liste_touche=new ArrayList();
       } 
     
         public void keyPressed(KeyEvent arg0) { 
          liste_touche.add(new Interger(arg0.getKeyCode()));
     
          if (contient_touche(KeyEvent.CTRL_MASK)&&contient_touche(KeyEvent.VK_PAGE_UP)) 
          { 
             System.out.println("coucou"); 
          } 
     
       } 
          public void keyReleased(KeyEvent arg0) {  
          supprime_touche(arg0.getKeyCode());
       } 
     
       public void keyTyped(KeyEvent arg0) { } 
     
    public boolean contient_touche(int code_touche)
    {
    //instruction pour vérifier si la liste contient l'entier code_touche
    }
    public void supprime_touche(int code_touche)
    {
    //instruction pour supprimer l'entier code_touche
    }
     
     
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut
    Bonjour,

    Il me semble que le tutoriel de SUN
    http://java.sun.com/docs/books/tutor...ylistener.html
    propose une solution plus simple. Il suffit de récupérer le "modifier" du KeyEvent par ke.getModifiers().

    L'exemple ci-dessous fonctionne chez moi.

    Nicolas
    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
    // appeler le fichier CtrlPageUpDetect.java
    // par Nicolas_75
     
    import java.awt.event.*;
    import javax.swing.*;
     
    public class CtrlPageUpDetect extends JFrame {
     
        public CtrlPageUpDetect() {
            this.setSize(400,400);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.addKeyListener(new KeyAdapter() {
                public void keyPressed(KeyEvent ke) {
                    if ((ke.getModifiers()==KeyEvent.CTRL_MASK) && (ke.getKeyCode()==KeyEvent.VK_PAGE_UP)) {
                        System.out.println("Ctrl-PageUp pressé !");
                    }
                }
            }
            );
        }
     
        public static void main(String[] args) {
            CtrlPageUpDetect frame = new CtrlPageUpDetect();
            frame.setVisible(true);
        }  
    }

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup pour votre aide et surtout toi nicolas puisque ton code marche à merveille

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

Discussions similaires

  1. Réaction clavier / Combinaison touche
    Par dadouuuu dans le forum Débuter
    Réponses: 9
    Dernier message: 02/06/2009, 17h07
  2. Réponses: 9
    Dernier message: 13/09/2007, 18h06
  3. Détection d'une seule touche clavier (ou combinaison de 2 touches)
    Par budhax dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 28/07/2007, 08h31

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