En essayant d'obtenir le char code de la touche ENTRÉE
J'ai ce code:
newSymbolTextBox.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
System.out.println("foo =" + KeyCodes.KEY_ENTER);
System.out.println("bar =" + event.getCharCode());
}
});
Lorsque j'appuie sur ENTRER je obtenir ce résultat:
foo =13
bar =
Je m'attendais à une valeur après bar =
. Une idée?
- Est-ce à l'aide de la norme API Java ou une autre bibliothèque comme GWT?
- vos noms de classe sont étranges. Je ne pense pas qu'il y est un événement keypressevent classe en Java. Qu'utilisez-vous?
- Oui! Je suis en utilisant GWT, je ne sais pas ce qui a pu compter..je viens juste de commencer avec Java une GWT.
- Dans ce cas, vous devez marquer votre question en tant que telle, autrement, les gens supposent que c'est en utilisant quelque chose comme swing! J'ai utilisé maintenant comme ci-dessus.
- Voir Justin réponse ci-dessous, et la question 5558 code.google.com/p/google-web-toolkit/issues/detail?id=5558
Vous devez vous connecter pour publier un commentaire.
La valeur est, en fait, là. La raison pour laquelle tu ne vois pas ce qu'il est parce que le personnage est un retour chariot. Le retour chariot, je crois, déplace juste la ligne suivante (vous pouvez google c'est exact de la fonction). Si vous google "table ascii", vous verrez que le 13 vous obtenez à partir de
KeyCodes.KEY_ENTER
correspond avec le CR, le caractère de retour chariot.getCharCode()
. caractères et ints sont l'un des la même. Vous pouvez comparer directement entre eux, sans aucun problème. Exemple: 'A' == 65 true. La seule raison pour laquelle vous ne voyez pas quoi que ce soit aprèsbar =
est parce que le caractère de retour chariot (int valeur = 13) ne correspond pas avec n'importe quel personnage visible, juste une nouvelle ligne.println
un entier qui correspond à un caractère ASCII. Par la conversion en int, vous dites à la sortie de la routine "je veux afficher la valeur de l'entier, et non pas le caractère de la représentation."Vous devez soit utiliser
event.getNativeEvent().getKeyCode()
ou de passer àKeyDownHandler
.Voir http://code.google.com/p/google-web-toolkit/issues/detail?id=5558
KeyCodes.KEY_ENTER
est la valeur de l'entier de la touche Enter.event.getCharCode(
) est le caractère de la représentation, de sorte qu'il serait montrer comme un retour à la ligne aprèsbar =
Dans windows avec java 7 retourne à 10 pour les deux cas.
Et pour afficher le nombre de la valeur d'un char, vous devez le convertir en int.