Bonjour,
Il faut regarder la documentation pour savoir ce que font les méthodes que tu manipules.
https://docs.oracle.com/javase/10/docs/api/java/awt/event/KeyEvent.html#getKeyCode()
getKeyCode() s'utilise pour récupérer les événements KEY_PRESSED et KEY_RELEASED.
Mais pour KEY_TYPED elle renverra toujours VK_UNDEFINED.
Donc ton code fait ça :
public void keyTyped(KeyEvent event) {
int key = event.getKeyCode(); // toujours VK_UNDEFINED
if (key == KeyEvent.VK_ENTER) { // toujours faux
Remarque : ton commentaire
"évenement se declenchant quand la toucher "return" est pressée puis relachée" est faux, le keyTyped intervient à chaque fois qu'un caractère est saisi, par exemple tu peux rester appuyer sur la touche A pour écrire AAA, tu aurais alors 3 appels à keyPressed, 3 appels à keyTyped mais 1 seul appel à keyReleased, dans cet ordre : pressed/typed/pressed/typed/pressed/typed/released
Il peut aussi y avoir une touche pressée puis relâchée, sans qu'aucun caractère ne soit saisi, par exemple avec VK_CONTROL, dans ce cas keyTyped() n'est pas appelée. Sans oublier les combinaisons majuscules, accents, etc.
Attention : ton else { touche = false; } risque d'avoir des effets de bords, car si tu appuies sur une autre touche que VK_ENTER la valeur repasse à false, je ne suis pas sûr que ce soit pertinent ici.
Remarque : quel est l'intérêt de cette imbrication de valeur booléenne avec la méthode toucheTaper ? Ne pourrais-tu pas plus simplement appeler ton code directement depuis le keyReleased ?
Avec le peu de code que j'ai vu, ce que tu as fait ressemble à une bidouille pour contourner un problème qui devrais se résoudre plus facilement que la mécanique que tu as mis en place et qui te pose plus d'ennui maintenant que le problème que tu avais initialement...
Initialement j'avais une class : "ClavierListener"
Et dans mon constructeur j'appelle la méthode
1/ quand " est appelée dans le constructeur (permettant de sélectionner un dossier en choisissant un item avec la souris), le contrôle du clavier fontionne puisque j'ai 2 appels de méthodes dans ce cas :
combo1.addKeyListener(new ClavierListener()); et celle ci-dessous.
Ce qui n'est pas le cas, quand celle ci-dessous n'est pas appelée.
}
1/ J'ai implémenté ma class avec un ItemListener
2/ J'ai supprimé tout le code dans et l'ai mis dans :
3/
Ainsi :
1/ la touche entrée permet de sélectionner un item dans la combobox
2/ de meme on peut utiliser la souris