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

30,563

Solution 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");
    }
});

Solution 2

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

        scene.addEventFilter(KeyEvent.ANY, keyEvent -> {
            System.out.println(keyEvent);
        });
Share:
30,563
user2560035
Author by

user2560035

Updated on July 09, 2022

Comments

  • user2560035
    user2560035 almost 2 years

    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