百分比 (%) 的 JavaFX KeyCode

JavaFX KeyCode for percent (%)

我想检测何时按下某些键。我似乎找不到百分号 (%) 的 KeyCode。我搜索了 JavaFX 8 JavaDoc,没有像我期望的那样 PERCENT 的枚举常量。 Google 也没有帮助。 % 有什么我不知道的特别之处吗?

@FXML
private void keyPressed(KeyEvent evt) {
    if (evt.getCode().isDigitKey() && !evt.isShiftDown()) {
        String number = evt.getText();
        numberAction(number);
    }
    if (evt.getCode().equals(KeyCode.DECIMAL)) {
        decimalAction();
    }
    if (evt.getCode().equals(KeyCode.PERCENT)) {
        percentAction();
    }
}

枚举 KeyCode.PERCENT 不存在。

你试过这个吗?

YOUR_CONTROLLER.setOnKeyPressed(event ->{
        if((event.getCode() == KeyCode.DIGIT5) && event.isShiftDown())
            System.out.println("It's work");

});

是的,您找不到此符号的 KeyCode,因为要编写它,您应该多按 1 个键 (:

更新: 你也可以试试这个:

YOUR_CONTROLLER.setOnKeyPressed(event ->{
        if((event.getText().equals("%"))
             System.out.println("It's work");
});

不使用 keyPressed 事件,而是使用 keyTyped 事件并使用 KeyEvent.getCharacter 获得独立于键盘布局的结果:

@FXML
private void keyTyped(KeyEvent evt) {
    ...
    if ("%".equals(evt.getCharacter())) {
        percentAction();
    }
}

(当然你需要修改你的fxml文件。)