JavaFX:KeyEvent只允许数字,字母,符号和空格

时间:2017-06-16 06:20:06

标签: javafx java-8 keyevent

我正在尝试编写一个事件处理程序,我可以使用用户输入的文本。

我尝试使用KeyEvent.KEY_TYPED,但它也为 BACKSPACE ESC 等键提供了unicode字符。我想捕获的所有字符都是您可以(直观地)进入文本字段,这意味着它应忽略 ESC ENTER TAB ,< kbd> BACKSPACE ,功能按钮(例如 F1 ),修改按钮,导航按钮和锁定按钮。

我也尝过KeyEvent.KEY_PRESSED,但KeyCode只有isDigit()isLetter();它没有isSymbol()

我应该如何实施?

1 个答案:

答案 0 :(得分:0)

我可能错了,但我认为没有一个KeyEvent开箱即用。在你的情况下,最好只听你的TextField的ValueProperty,因此只有在文本实际改变时才会起作用?类似的东西:

myTextField.valueProperty().addListener((ObservableValue obsVal, String oldVal, String newVal) -> {doWhateverYouNeedWith_newVal;});

请注意,即使您以编程方式更改文本,也会调用此侦听器,而不仅仅是在用户键入内容时。