Eh bien ... J'ai un TextField et je voudrais que le texte tapé n'apparaisse pas dans le composant, il suffit de le lire.Comment faire pour que le texte n'apparaisse pas dans un objet TextField?
La raison en est que je veux lire une clé en utilisant l'événement onKeyPressed et afficher la touche enfoncée dans getEvent(). Méthodes GetName() d'un KeyEvent.
Mais il y a des problèmes:
- lorsque vous appuyez sur la touche Suppr, la lettre « D » est supprimée du texte TextField.
- Lorsque vous appuyez sur la touche Espace, un espace est ajouté au début.
- ...
Ceci est mon code:
this.myTextField.setOnKeyPressed((KeyEvent event) -> {
shortcut = event.getCode();
myTextField.setText(shortcut.getName());
});
- raccourci est un CodeTouche
- myTextField est un TextField
Merci pour les réponses!
Pourriez-vous simplement saisir la touche enfoncée et effacer le 'TextField'? – Sedrick
Ou peut-être utiliser quelque chose comme [this] (http://fxexperience.com/2012/02/restricting-input-on-a-textfield/). De cette façon, vous pouvez saisir le texte, mais rendre tout le texte invalide. Il suffit ensuite de définir le texte 'TextField' sur une chaîne vide. – Sedrick
Je crois que l'ajout de contraintes ne serait pas une bonne solution, car la touche Delete continuerait de supprimer la première lettre. En ce qui concerne l'option pour effacer le contenu de TextField, je l'ai même essayé, mais il semble que le thread qui change le contenu d'un TextField soit appelé après l'appel de mon événement, donc même en effaçant le contenu et en en insérant un nouveau, TextField changements après. –