我想检测何时按下某些键。我似乎找不到百分号(%)的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
不存在。
答案 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");
});