Using JavaFX 8 Scene, Read Keyboard Input while running
17,272
You can use a KeyEvent listener to listen to when key is pressed, release, typed or any of them. It doesn't matter what you have running on other threads, whether that's some infinite loop, or anything else; if the user presses a button, the listener will be called.
You just need to add a listener to the scene and the key event which you want to listen to.
scene.addEventHandler(KeyEvent.KEY_PRESSED, (key) -> {
if(key.getCode()==KeyCode.ENTER) {
System.out.println("You pressed enter");
}
});
Related videos on Youtube
Comments
-
JCoder almost 2 years
I have my JavaFX 8 Scene going nicely. Now, while everything else is happening, I would like to continuously check for any KeyEvent/KeyCode while the program is running. I have a Timeline called timeline set to INDEFINITE and I've set my cycle count to indefinite with
timeline.setCycleCount(Timeline.INDEFINITE);
I'm looking for an easy method that is also clean and won't make my program choppy.
-
ItachiUchiha about 9 yearsWhy do you need a
TimeLine
for listening toKeyEvents
? -
JCoder about 9 yearsI'm doing animations, that's all I have so far. I now want to be able to do stuff like, restart the animation, or display a button on the screen, or anything else, based on user input from keys. I only mentioned it because I was worried about interruptions.
-
-
JCoder about 9 yearsThank you, ItachiUchiha!
-
Pieter De Bie about 8 yearsI guess you mean "it doesn't matter"?