Je souhaite détecter lorsque certaines touches sont enfoncées. Je n'arrive pas à trouver un KeyCode
pour le signe pourcentage (%). J'ai balayé le JavaFX 8 JavaDoc, et il n'y a aucune constante d'Enum pour PERCENT
comme je m'attendrais. Google n'était pas utile non plus. Y at-il quelque chose de spécial à propos de% que je ne connais pas? L'Enum KeyCode.PERCENT
n'existe pas.JavaFX KeyCode pour pourcentage (%)
Répondre
plutôt que d'utiliser l'événement keyPressed
, utilisez l'événement keyTyped
et utiliser KeyEvent.getCharacter
pour obtenir le résultat indépendant de la disposition du clavier:
@FXML
private void keyTyped(KeyEvent evt) {
...
if ("%".equals(evt.getCharacter())) {
percentAction();
}
}
(Vous devez bien sûr modifier votre fichier fxml.)
Merci @fabian. Cela fonctionnera. J'ai été capable de contourner le problème de la même manière. – RonSiven
Avez-vous essayé cela?
YOUR_CONTROLLER.setOnKeyPressed(event ->{
if((event.getCode() == KeyCode.DIGIT5) && event.isShiftDown())
System.out.println("It's work");
});
Et oui, u ne peut pas trouver CodeTouche pour ce symbole parce que pour écrire, vous devriez appuyer sur plus de 1 touche (:
MISE À JOUR: Vous pouvez également essayer ceci:
YOUR_CONTROLLER.setOnKeyPressed(event ->{
if((event.getText().equals("%"))
System.out.println("It's work");
});
Cette solution est plutôt mauvaise ... Elle dépend de la disposition du clavier et échouera, par ex. Pour la [mise en page AZERTY] (https://en.wikipedia.org/wiki/AZERTY) – fabian
Donc, la clé est DIGIT et isShiftDown, maintenant quelle touche est-ce? – mohsenmadi
Peut-on lire le code clairement? Il y a DIGIT5 – GVArt
Vous avez du code pour partager? J'ai fait face à des problèmes similaires il y a quelque temps. Cela aiderait si vous nous commenciez avec du code. – mohsenmadi
@mohsenmadi pas sûr que ça aide vraiment, mais j'ai ajouté du code à ma question. Je veux juste un 'KeyCode' pour cent (Shift + 5) sur mon clavier. Je peux détecter Shift + 5 en utilisant un 'KeyCombination', mais je veux utiliser un' KeyCode' pour la dernière touche enfoncée. – RonSiven
Je vois une bonne solution ci-dessous par @fabian, ou vous pouvez même utiliser getText() en entrée pour déterminer si la touche pressée est%. Certes, il semble qu'il n'existe pas de solution propre pour traiter toutes les clés en utilisant la même approche de codage. – mohsenmadi