如何在JavaFX中使用KeyCombination获取用户输入?

时间:2018-03-22 16:57:58

标签: java javafx user-input keycode

我正在开发一个简单的修复后修复转换器。我想从键盘输入用户的输入。要输入一些符号,例如" +",用户必须按shift键。我正在使用KeyCombination对象来捕获用户是否正在使用shift。

我的代码一直给我这个错误:密钥代码不能与修饰键匹配!

然而,当我查看键码时,它不是Shift,而是按下任何数字行键。例如,如果用户按Shift + =,则键码是EQUALS,而不是Shift_DOWN修改器。代码按预期工作,但我无法弄清楚如何摆脱这个异常。

tfInput.setOnKeyPressed(e -> {

        if (e.isShiftDown()) {
            KeyCombination kc = new KeyCodeCombination(e.getCode(),
                    KeyCombination.SHIFT_DOWN);
            userInput = kc.toString();  
        }

1 个答案:

答案 0 :(得分:1)

您收到错误的原因是因为组合键中的第一个参数是键码,而shift是一个键修饰符,您可以通过在继续之前检查键是否为SHIFT来停止获取此错误

php artisan key:generate