2017-06-16 151 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;}); 

注意認爲,即使您以編程方式更改文本這個監聽器將被調用,而不僅僅是當用戶鍵入的東西。

相關問題