【发布时间】:2016-06-03 03:53:28
【问题描述】:
我想检测何时按下某些键。我似乎找不到百分号 (%) 的 KeyCode。我已经搜索了 JavaFX 8 JavaDoc,并且没有 PERCENT 的 Enum 常量,就像我期望的那样。谷歌也没有帮助。 % 有什么我不知道的特别之处吗?
@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 不存在。
【问题讨论】:
-
有代码要分享吗?不久前我遇到了类似的问题。如果您从一些代码开始我们会有所帮助。
-
@mohsenmadi 不确定它是否真的有帮助,但我在我的问题中添加了一些代码。我只想在我的键盘上使用
KeyCode表示百分比(Shift+5)。我可以使用KeyCombination检测 Shift+5,但我想使用KeyCode来表示最后一次按下的键。 -
我在@fabian 下面看到了一个很好的解决方案,或者您甚至可以在输入时使用 getText() 来确定按下的键是否为 %。不过,确实,似乎不存在使用相同编码方法处理所有键的干净解决方案。
-
这对我来说似乎是一个错误。除 5 (%) 外,每个数字的移位状态都有一个 KeyCode。甚至还有一个“^”(
KeyCode.CIRCUMFLEX)。 -
所有 KeyCode 常量代表未移位的键。虽然在美国键盘上很少看到像抑扬符这样的专用键,但有些布局,尤其是在美国以外的地区,有这样的键。