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 :

Pourquoi la valeur retournée par KeyEvent.getKeyCode ne tient pas compte des minuscules ?


Sujet :

AWT/Swing Java

  1. #1
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Points : 252
    Points
    252
    Par défaut Pourquoi la valeur retournée par KeyEvent.getKeyCode ne tient pas compte des minuscules ?
    Bonjour,

    soit la méthode suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void keyPressed(KeyEvent e) 
    {
       System.out.println("Caractère saisi:'" + e.getKeyChar() + "' Code:" + e.getKeyCode());
    }
    Si je tape la touche 'A' du clavier, la ligne suivante apparaît:
    Caractère saisi:'A' Code: 65
    Si je tape la touche 'a' du clavier, la ligne suivante apparaît:
    Caractère saisi:'a' Code: 65
    Si je tape la touche '6' du clavier, la ligne suivante apparaît:
    Caractère saisi:'6' Code: 54
    Si je tape la touche '-' du clavier, la ligne suivante apparaît:
    Caractère saisi:'-' Code: 54
    etc.

    En conclusion, la touche KeyEvent.getKeyCode() retourne toujours le code unicode du caractère en majuscule correspondant à la touche du clavier pressé.
    Comment faire pour que cette méthode retourne le code unicode du caractère minuscule ?

    Merci d'avance pour votre aide
    ++

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 866
    Points : 22 913
    Points
    22 913
    Billets dans le blog
    51
    Par défaut
    Le code retourné n'est pas celui du charactère 'A', c'est celui de la touche A du clavier, nuance, qui se trouve avoir un code identique :

    Citation Envoyé par javadoc de KeyEvent
    VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A)
    Donc pour savoir si c'est une majuscule ou une miniscule qui a été saisie, il te faut tester ensuite si la touche modificatrice SHIFT est également active avec getModifiersEx(). Voir sa javadoc pour savoir comment faire.

  3. #3
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par bouye Voir le message
    Le code retourné n'est pas celui du charactère 'A', c'est celui de la touche A du clavier
    alors sa diffère entre clavier AZERTY et QWERTY ?

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 866
    Points : 22 913
    Points
    22 913
    Billets dans le blog
    51
    Par défaut
    Je ne comprends pas ta question. La touche A du clavier produit l'event VK_A quelques soit le clavier *physique* utilisé... enfin si tu n'as pas appliqué un quelconque clavier *virtuel* au niveau de l'OS bien sur...

  5. #5
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 127
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par bouye Voir le message
    Je ne comprends pas ta question. La touche A du clavier produit l'event VK_A quelques soit le clavier *physique* utilisé... enfin si tu n'as pas appliqué un quelconque clavier *virtuel* au niveau de l'OS bien sur...

    Je crois que Slim se demandais si on obtenait le même event en appuyant sur la touche Q d'un clavier querty et sur la touche A d'un clavier Azerty.

    Ou bien si la touche physique 'A' renvoyait toujours le même évent quelque soit son emplacement sur le clavier.

    Sinon pour revenir à ton interogation de départ zoax :
    Comment faire pour que cette méthode retourne le code unicode du caractère minuscule ?
    Est-ce que tu as réellement besoin de ce code unicode, maintenant que tu sais que la touche renvera toujours le même keyCode (donc identique minuscule/majuscule) que la touche shift soit enfoncé ou pas ?

  6. #6
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par bouye Voir le message
    Je ne comprends pas ta question. La touche A du clavier produit l'event VK_A quelques soit le clavier *physique* utilisé... enfin si tu n'as pas appliqué un quelconque clavier *virtuel* au niveau de l'OS bien sur...
    je comprend mais je voulu dire sur un clavier QWERTY on obtient pas le Code: 65 si on appuis sur la touche A ?

  7. #7
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Points : 252
    Points
    252
    Par défaut
    Le code retourné n'est pas celui du charactère 'A', c'est celui de la touche A du clavier, nuance
    Ah d'accord. Effectivement, dans la javadoc, il n'est pas du tout indiqué que la méthode KeyEvent.getKeyCode() retourne le code unicode du caractère saisi. J'ai lu un peu vite.

    En conclusion, il faut que j'utilise la méthode KeyTyped et que je caste le caractère retourné par la méthode KeyEvent.getKeyChar() en entier pour obtenir le caractère unicode.

    Merci
    ++

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

Discussions similaires

  1. comment comparer les valeurs retournés par DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/06/2006, 14h42
  2. Réponses: 1
    Dernier message: 22/05/2006, 11h27
  3. [SQL] Valeur retournée par une requête...
    Par Empty_body dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2006, 22h13
  4. VB6 --> Valeurs retournées par une comboBox
    Par the java lover dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/12/2005, 16h26
  5. valeur retournée par un .js
    Par astrofiles dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 10h20

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