Convertir char en string java.
Hugueprime
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
Hugueprime Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Hugueprime Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de faire un programme qui récupère toutes les frappe de clavier et qui les envoie a un autre ordinateur. J'utilise une KeyListener qui me permet d'avoir mes caractères mais je n'arrive pas a les convertir en ascii avec cette méthode :
De plus je n'arrive pas à récupérer la frappe de touche comme ctrl ou alt.
Si quelqu'un a une idée. Merci d'avance.
Je suis en train de faire un programme qui récupère toutes les frappe de clavier et qui les envoie a un autre ordinateur. J'utilise une KeyListener qui me permet d'avoir mes caractères mais je n'arrive pas a les convertir en ascii avec cette méthode :
textbox.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent ke){ String s = ke; System.out.println((int)s.charAt(0) ); } });
De plus je n'arrive pas à récupérer la frappe de touche comme ctrl ou alt.
Si quelqu'un a une idée. Merci d'avance.
A voir également:
- Convertir char en string java.
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
1 réponse
Bonjour,
Là le problème n'est même pas dans la conversion entre char et String, c'est que tu essayes de mettre un KeyEvent dans un String, ce qui n'a rien à voir du tout.
Il faudrait utiliser la méthode getKeyChar() de l'objet KeyEvent pour récupérer le char correspondant.
https://docs.oracle.com/javase/9/docs/api/java/awt/event/KeyEvent.html#getKeyChar--
Remarque : Java ne travailles pas en ASCII mais en UTF-16.
Là le problème n'est même pas dans la conversion entre char et String, c'est que tu essayes de mettre un KeyEvent dans un String, ce qui n'a rien à voir du tout.
Il faudrait utiliser la méthode getKeyChar() de l'objet KeyEvent pour récupérer le char correspondant.
https://docs.oracle.com/javase/9/docs/api/java/awt/event/KeyEvent.html#getKeyChar--
textbox.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent keyEvent) { System.out.println(keyEvent.getKeyChar()); } });
Remarque : Java ne travailles pas en ASCII mais en UTF-16.
Comment puis-je faire ? Merci
Il n'y a pas besoin de conversion, les caractères sont déjà en UTF-16, mais tu demandais "a les convertir en ascii" ce qui n'a de sens que pour les 128 premiers caractères (qui sont commun avec l'Unicode) mais pour tous les autres ce ne sera pas de l'ASCII.
"me donne que les lettres tapé, je ne peux pas avoir des nombre a la place des caractère ?"
À partir du moment où tu as ton char, tu peux faire la conversion avec ton cast (int) comme tu l'avais fait avec ton code précédent :
"je n'arrive toujours pas a récupéré la pression de la touche ctrl, alt"
Parce que ce ne sont pas des caractères, or la méthode keyTyped ne récupère que les caractères.
Si tu veux récupérer les touches du clavier (ou les combinaisons de touches de celles-ci), tu devrais plutôt regarder les méthodes keyPressed et keyReleased.
Voir la documentation : https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html
Par exemple, si keyPressed détecte que tu appuies sur VK_UP (touche majuscule) puis VK_A, keyTyped va récupérer le caractère 'A' et keyReleased va détecter que tu relâches VK_A puis VK_UP.
Autre exemple, keyPressed détecte l'appuie sur VK_CIRCUMFLEX, keyReleased sa relâche, keyPressed détecte l'appuie sur VK_E, keyTyped récupère le caractère 'ê' et keyReleased la relâche de VK_E.