【问题标题】:How to check if a key is down without a listener in JavaFX?java - 如何在JavaFX中没有侦听器的情况下检查键是否关闭?
【发布时间】:2019-02-02 21:36:33
【问题描述】:

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

我可以想到几个解决方法。我只是想知道是否有正确的方法来做到这一点。

【问题讨论】:

  • 你不能不听就听不听,但你可以听并绑定值并从你的按钮监听器检查它的值如果你愿意,我可以提供代码作为答案
  • 请继续。

标签: java user-interface javafx keyboard


【解决方案1】:

在这里,当我按下键盘上的任何按钮然后单击按钮打印键时,这段代码对我来说就像一个魅力

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

【讨论】:

  • 乐于助人:D
猜你喜欢
  • 2012-12-27
  • 2011-04-03
  • 1970-01-01
  • 2020-05-25
  • 2015-05-14
  • 2018-02-12
  • 2018-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多