JavaFX KeyEvent 返回 KeyCode.UNDEFINED。

7

我创建了一个简单的JavaFX应用程序,它从用户在TextField中输入的内容。我通过SceneBuilder将KeyTyped事件附加到控制器上。我的函数代码如下:

@FXML private void keyTyped(KeyEvent event) {
    System.out.println(event.getCode().equals(KeyCode.ENTER));
}

我在按下回车键时,这个函数总是打印出未定义(UNDEFINED)。有没有什么办法可以解决这个问题?我输入的其他字母似乎也有同样的问题。

1个回答

14

KeyTyped 是一个特殊的事件。它没有 KeyCode,但是有一个代替的 character 集合。

以字母 'a' 为例:

KeyEvent [source = TextField[id=null, styleClass=text-input text-field], 
target = TextField[id=null, styleClass=text-input text-field], eventType = KEY_TYPED, consumed = false, 
character = a, text = , code = UNDEFINED]

并且 javadoc: http://docs.oracle.com/javafx/2/api/javafx/scene/input/KeyEvent.html#getCode()

此按键按下或释放事件中与按键相关联的按键代码。对于按键类型事件,代码始终为KeyCode.UNDEFINED。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接