我创建了一个简单的JavaFX应用程序,该应用程序在TextField中接收来自用户的输入。我将 KeyTyped 事件从 SceneBuilder 附加到控制器。我的函数如下所示:
@FXML private void keyTyped(KeyEvent event) {
System.out.println(event.getCode().equals(KeyCode.ENTER));
}
当我键入回车键时,此函数总是打印出未定义。关于如何解决这个问题的任何想法?我输入的其他字母似乎也有同样的问题。
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()
与此键中的键关联的键代码 按下或键 已发布事件。对于键类型事件,代码始终 密钥代码.未定义。