山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

JavaFX キーボード入力を受け付ける

キーイベントの取得

JavaFXRPGを作っているときに、キーボード入力を受け付けて反映させるプログラムをどのように書けば良いのか迷ったので、その方法を書きます。

blog.ayihis.info
上記のサイトでその方法が書かれているんですが、TextAreaを使うとキーイベントの取得はどうなるのか試してみました。

コード

public class Test extends Application {
	  @Override
	    public void start(Stage stage) {
		  	HBox hBox = new HBox();
	        //Label label = new Label();
	        TextArea textArea = new TextArea();
			textArea.setEditable(false);
	        hBox.getChildren().add(textArea);
	        textArea.setOnKeyPressed(e ->{
	            System.out.println(e.getCode());
	        });
	        Scene scene = new Scene(hBox, 300, 250);
	        stage.setScene(scene);
	        stage.show();
	    }
	    public static void main(String[] args) {
	        launch(args);
	    }
}
<||
TextAreaを使ってキーイベントを設定すると、secneにsetOnKeyPressedを付けなくても、コンソールにキー入力が反映されようになりました。
一方で、textAreaをコメントアウトして、LabelにsetOnKeyPressedを付けるとキー入力は反映されませんでした。