2017-06-16 304 views
0

我想写一个事件处理程序,我可以使用用户输入的文本。JavaFX:KeyEvent只允许数字,字母,符号和空间

我尝试使用KeyEvent.KEY_TYPED但它也给使用Unicode字符键,如退格ESC等,所有我想捕捉,你可以(视觉),进入到一个文本字段中的字符,这意味着它应该忽略ESCENTERTABBACKSPACE,功能按钮(例如F1),改性剂的按钮,导航按钮和锁定按钮。

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

我应该如何去实施?

+0

你是如何实现它的?请张贴一些代码! –

回答

0

我可能是错的,但我不认为有一个KeyEvent可以开箱即用。在你的情况下,听取TextField的ValueProperty不是更好,因此只有在文本实际更改时才会执行操作。喜欢的东西:

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

注意认为,即使您以编程方式更改文本这个监听器将被调用,而不仅仅是当用户键入的东西。

相关问题