2017-09-06 4 views
1

Je travaille sur un outil JavaFX qui nécessite que l'utilisateur saisisse String les représentations des touches du clavier qu'il souhaite.Parse chaîne de touches spéciales pour obtenir KeyCode

A cet effet, j'utilise la fonction KeyCode.getKeyCode(String), où la documentation dit

représentation textuelle parse d'une clé. »

Cela fonctionne parfaitement pour les lettres comme "A", "B", "C" et ainsi de suite, mais pas sur des touches spéciales comme "ESCAPE"

Celui-ci est évidemment on the list of constants for KeyCode . Existe-t-il une autre liste de «représentations textuelles» possibles censées être utilisées pour recevoir le code clé?

Un grand merci!

+0

Vous souhaitez obtenir un code clé à partir d'une chaîne? Vous ne pouvez pas utiliser ['KeyCode.getKeyCode (String)'] (https://docs.oracle.com/javafx/2/api/javafx/scene/input/KeyCode.html#getKeyCode (java.lang.String) –

+0

@Vince Emigh Ehm, s'il vous plaît lire un peu plus que juste le titre. Exactement cette fonction renvoie null pour la chaîne "ESCAPE". – DragonGamer

+0

Avez-vous essayé ['getText()' ou 'getCharacter()'] (https://docs.oracle.com/javase/8/javafx/api/javafx/scene/input/KeyEvent.html)? – Sedrick

Répondre

3

Depuis KeyCode est un enum, vous pouvez utiliser KeyCode.valueOf(String) pour obtenir la valeur ENUM à partir d'une représentation de chaîne de la valeur, plutôt que de compter sur KeyCode.getKeyCode(String). Pour KeyCode.ESCAPE, il suffit d'utiliser KeyCode.valueOf("ESCAPE"). La représentation String doit correspondre exactement à la valeur enum. Pour KeyCode.BACK_SLASH, vous devez utiliser KeyCode.valueOf("BACK_SLASH").