2013-12-21 6 views
6

ユーザーからの入力をTextFieldで受け取る簡単なJavaFXアプリケーションを作成しました。私は、SceneBuilderのKeyTypedイベントをコントローラにアタッチしました。私の関数は次のようになります:JavaFX KeyEventからKeyCode.UNDEFINEDが返される

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

この関数は、入力キーを押したときに常にUNDEFINEDを出力します。どのようにこれを修正するための任意のアイデア?私がタイプする他の文字にも同様の問題があるようです。

答えて

11

KeyTypedは特別なイベントです。 KeyCodeはありませんが、代わりにcharacterが設定されています。

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です。

関連する問題