是否可以在不监听 KeyEvent 的情况下简单地检查当前是否在 JavaFX 中按下了某个键?就我而言,我想检查按下按钮时是否按下了某个键。
button.setOnAction(e -> {
// This is where I want to check if a specific key is currently down.
if(keyIsDown) {
// do something
} else {
// do something else
}
});
我可以想到几个解决方法。我只是想知道是否有正确的方法来做到这一点。
最佳答案
当我按下键盘上的任何按钮然后单击按钮打印按键时,这段代码对我来说就像一个魅力
SimpleBooleanProperty simpleBooleanProperty = new SimpleBooleanProperty();
scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
simpleBooleanProperty.setValue(true);
}
});
scene.setOnKeyReleased(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
simpleBooleanProperty.setValue(false);
}
});
done.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if(simpleBooleanProperty.get()){
System.out.println("Key Down");
}else { //key released
System.out.println("Key Up");
}
}
});
关于java - 如何在没有 JavaFX 监听器的情况下检查键是否关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52054703/