0
javaFYプロジェクトでは、キーを押したリスナーをウィンドウ全体に追加します。ウィンドウのFXMLファイルのルートノードは、次のとおりです。キープレスイベントが発生しない
<VBox onKeyPressed="#windowKeyPressed" fx:controller="hu.kleni.tetris.EventController" ...>
と敬遠しがちイベントハンドラクラス:main()
方法で
public class EventController {
@FXML
public void windowKeyPressed(KeyEvent event) {
System.out.println(event.getCode());
}
...
}
、それだけでウィンドウをロードして起動します。プログラムを起動するとウィンドウが表示されますが、キーを押すとコンソールには何も表示されません。私は何か見落としてますか?
編集:私はこれを使用することができます(そしてそれが正常に動作します)が:
scene.setOnKeyPressed((event) -> {
// maybe call EventController.windowKeyPressed(event);
})
、私は唯一のFXMLファイル内のすべてのイベントハンドラを定義することを好むだろう。