【问题标题】:JavaFX Is there any better way to get keycode of Question Mark and othersJavaFX有没有更好的方法来获取问号和其他的键码
【发布时间】:2018-11-04 22:17:24
【问题描述】:

有没有更好的方法来获取这些 ()?:"{}|!@#$%^&* 的键码作为没有这个漫长过程 JavaFX 的方法的字符串

如果是,我首先检查是否按下了 .getCode() 并且如果那个 keyCOde = SLASH 然后使用“?”问号。但这很长

scene.setOnKeyPressed(new EventHandler<KeyEvent>() {

                @Override
                public void handle(KeyEvent e) {                


                    if(e.isShiftDown()) {


                        switch (e.getCode()) {

                        case SLASH:                     
                            bot_list.get(0).hit("?");   
                            break;

                        case LEFT_PARENTHESIS:                          
                            bot_list.get(0).hit(",");
                            break;

                        case RIGHT_PARENTHESIS:                     
                            bot_list.get(0).hit(".");
                            break;

                        case QUOTE:
                            bot_list.get(0).hit("'");
                            break;

                        case SEMICOLON:
                            bot_list.get(0).hit(":");
                            break;

                        case BRACELEFT:
                            bot_list.get(0).hit("{");
                            break;

                        case BRACERIGHT:
                            bot_list.get(0).hit("}");
                            break;

                        case OPEN_BRACKET:
                            bot_list.get(0).hit("[");
                            break;

                        case CLOSE_BRACKET:
                            bot_list.get(0).hit("]");
                            break;

                        case BACK_SLASH:
                            bot_list.get(0).hit("|");
                            break;

                        case BACK_QUOTE:
                            bot_list.get(0).hit("~");
                            break;


                    }
                    }

【问题讨论】:

  • 请注意,您的方法仅对某些键盘布局产生正确的结果。在我的(德语 qwertz)键盘上,没有大括号右键,您需要使用 Alt Gr + 7 来获得 {...
  • 哦,那里编码难吗?

标签: java javafx controller javafx-8 fxml


【解决方案1】:

如果您愿意改用KEY_TYPED 事件,则可以使用KeyEvent.character 属性获取输出:

targetNode.setOnKeyTyped(evt -> {
    System.out.println(evt.getCharacter());
});

另一方面,您不能在 KEY_TYPED 事件中使用 KeyEvent.code

【讨论】:

  • 谢谢你,法比安。我将使用 .setOnKeyTyped 并使用 if (e.getCharacter().equals(" ")) 作为空间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-11
  • 2014-05-14
  • 2010-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多