JavaFX Есть ли лучший способ получить код ключа Вопросительный знак и другие - PullRequest
0 голосов
/ 05 ноября 2018

Есть ли лучший способ получить коды клавиш этих () <> ?: "{} |! @ # $% ^ & * в виде строки для метода без этого длинного процесса JavaFX

Сначала я проверяю, нажата ли клавиша Shift, если да .getCode () и если эта клавиша COCO = 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;


                    }
                    }

1 Ответ

0 голосов
/ 05 ноября 2018

Если вы хотите использовать вместо этого событие KEY_TYPED, вы можете получить выходные данные, используя свойство KeyEvent.character:

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

С другой стороны, вы не можете использовать KeyEvent.code из KEY_TYPED событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...