JavaFX KeyCode百分比(%)

时间:2016-06-03 03:53:29

标签: javafx keycode

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

@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不存在。

2 个答案:

答案 0 :(得分:2)

使用keyPressed事件而不是使用keyTyped事件,并使用KeyEvent.getCharacter使结果与键盘布局无关:

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

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

答案 1 :(得分:-1)

你试过这个吗?

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