我正在尝试编写一个事件处理程序,我可以使用用户输入的文本。
我尝试使用KeyEvent.KEY_TYPED
,但它也为 BACKSPACE , ESC 等键提供了unicode字符。我想捕获的所有字符都是您可以(直观地)进入文本字段,这意味着它应忽略 ESC , ENTER , TAB ,< kbd> BACKSPACE ,功能按钮(例如 F1 ),修改按钮,导航按钮和锁定按钮。
我也尝过KeyEvent.KEY_PRESSED
,但KeyCode
只有isDigit()
和isLetter()
;它没有isSymbol()
。
我应该如何实施?
答案 0 :(得分:0)
我可能错了,但我认为没有一个KeyEvent开箱即用。在你的情况下,最好只听你的TextField的ValueProperty,因此只有在文本实际改变时才会起作用?类似的东西:
myTextField.valueProperty().addListener((ObservableValue obsVal, String oldVal, String newVal) -> {doWhateverYouNeedWith_newVal;});
请注意,即使您以编程方式更改文本,也会调用此侦听器,而不仅仅是在用户键入内容时。