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 :

Combinaison de touches


Sujet :

AWT/Swing Java

  1. #1
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut Combinaison de touches
    Bonjour, je suis en train de créer un mini jeu ou le joueur se déplace à l'aide des touches du clavier.

    Malheureusement je n'arrive pas a gérer le cas de la diagonale qui s'effectue avec une combinaison de 2 touches (UP + RIGHT par exemple).

    J'ai trouver ca sur le forum :

    http://www.developpez.net/forums/vie...hlight=clavier

    Mais la gestion de liste pour connaitre les touches enfoncées me parais un peu lourd.

    Y a t'il une autre méthode ?


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre averti 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
    Points : 375
    Points
    375
    Par défaut
    l'exemple de nicolas_75 dans le lien que tu mentionnes (tout à la fin) ne fonctionne pas ?
    Car apparament il n'utise pas de liste et je ne vois pas comment on peut faire plus simple ...

  3. #3
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    L'exemple de nicolas utilise une méthode qui ne fonctionne qu'avec des touche du genre alt / tab et autres... Moi je voudrais une méthode qui marche avec nimporte quel combinaison.

  4. #4
    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,

    La liste n'est pas nécessairement lourde ! Ci-dessous un exemple vite fait (donc probablement améliorable).

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    // appeler le fichier MultipleKeysListenerExample.java
    // par Nicolas_75
    // sur une idee de mabs
     
    import java.awt.event.*;
    import java.util.ArrayList;
    import javax.swing.*;
     
    class MultipleKeysListener implements KeyListener{
     
        private ArrayList<Integer> currentPressedKeys = new ArrayList<Integer>();
     
        public void keyPressed(KeyEvent ke) {
            Integer keyPressedCode = new Integer(ke.getKeyCode());
            if (!currentPressedKeys.contains(keyPressedCode)) { currentPressedKeys.add(keyPressedCode); }
            // TESTS :
            if (currentPressedKeys.contains(new Integer(KeyEvent.VK_UP)) && currentPressedKeys.contains(new Integer(KeyEvent.VK_RIGHT))) {
                System.out.println("UP and RIGHT are pressed !");
            }
        }
     
        public void keyReleased(KeyEvent ke) {
            currentPressedKeys.remove(new Integer(ke.getKeyCode()));
        }
     
        public void keyTyped(KeyEvent ke) {}
    }
     
     
    public class MultipleKeysListenerExample extends JFrame {
     
        public MultipleKeysListenerExample() {
            this.setSize(400,400);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.addKeyListener(new MultipleKeysListener());
        }
     
        public static void main(String[] args) {
            MultipleKeysListenerExample frame = new MultipleKeysListenerExample();
            frame.setVisible(true);
        }
    }
    Fonctionnement : lancer l'application, puis appuyer sur n'importe quelle touche : l'appui simultané sur UP et RIGHT entraîne l'écriture d'un message sur la console.

Discussions similaires

  1. Combinaison de touches
    Par Furius dans le forum Autres Logiciels
    Réponses: 9
    Dernier message: 30/08/2005, 14h56
  2. Comment inhiber la combinaison de touche CTRL+TAB ?
    Par jddev dans le forum Langage
    Réponses: 8
    Dernier message: 18/08/2005, 12h12
  3. [VB.NET] combinaison de touches
    Par AP dans le forum Windows Forms
    Réponses: 5
    Dernier message: 23/06/2005, 13h53
  4. [VCL] Comment détecter une combinaison de touches ?
    Par micatmidog dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/01/2005, 14h19
  5. Détecter combinaison de touches du clavier
    Par Shogun dans le forum Langage
    Réponses: 14
    Dernier message: 24/09/2004, 17h40

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