How do I run a function on a specific key press in JavaFX?

≯℡__Kan透↙ 提交于 2019-12-07 12:10:39

问题


I have a program in javafx that is running and I want to call a function inside that program when a specific key is pressed on the keyboard (for example, the "a" key). I tried using an event handler on my scene but KEY_PRESSED seems to go off when any key is pressed, unless I am using it wrong. KEY_TYPED seems like it might suit my needs, but I've only found examples of that one in relation to text boxes, which is not what I'm looking for. Does anyone know how to do this, or have a good resource I can consult for something like this


回答1:


Just check the code of the key that was pressed:

scene.setOnKeyPressed(e -> {
    if (e.getCode() == KeyCode.A) {
        System.out.println("A key was pressed");
    }
});



回答2:


Use an event filter and whatever keyevent you need, here I use ANY:

        scene.addEventFilter(KeyEvent.ANY, keyEvent -> {
            System.out.println(keyEvent);
        });


来源:https://stackoverflow.com/questions/33224161/how-do-i-run-a-function-on-a-specific-key-press-in-javafx

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!