JavaFX有没有更好的方法来获取问号等的键码

标签 java javafx controller javafx-8 fxml

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

我首先检查是否按下了shift,如果是的话.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;


                    }
                    }

最佳答案

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

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

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

关于JavaFX有没有更好的方法来获取问号等的键码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146058/

相关文章:

grails - Groovy:参数链接标签

asp.net-mvc - 什么时候应该在 ASP.NET MVC 中使用异步 Controller ?

java - 在Java中解析长数字

java - 如何限制用户可以调整 JavaFX 窗口大小的程度?

java - 为什么 HashSet 不能直接在内部使用位数组而不是 HashMap 来节省一些空间?

css - JavaFX 网格 Pane : Shrink if content is disabled and invisible

JavaFX 模糊整个窗口

angularjs - 在$ routeProvider中使用resolve会导致 'Unknown provider …'

java - java中初始化字符串的大小

java - JDK 11 Spring Boot 2 .TypeNotPresentException : Type javax. servlet.Filter 不存在