百分比 (%) 的 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文件。)
我想检测何时按下某些键。我似乎找不到百分号 (%) 的 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文件。)