java - 如何在没有 JavaFX 监听器的情况下检查键是否关闭?

标签 java user-interface javafx keyboard

是否可以在不监听 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/

相关文章:

Java正则表达式: finding match errors

java - 错误: Could not find or load main class

java - 如何以固定时间间隔调用方法(无线程)

Java UI 布局问题

java - 如何将按钮对齐到 JavaFX 的右下角?

java - 按钮悬停和按下效果 CSS Javafx

Java 类型推断与删除

java - 如何构建良好的 Java GUI 应用程序设计模式?

swing - 如何加速落后的 Swing 扫雷板?

单击按钮时的 JavaFX 新场景