Первый символ не обнаруживается / печатается с использованием Jline 2.14 с Java

        int readChar = cnslRdr.readCharacter();
        if ( readChar == 9){                
                if (cnslRdr.readCharacter() == 9 ){                                         
                    cnslRdr.println("Double tab presssed..");                       
                    continue;
                }               
        }

Приведенный выше код при запуске в командной строке не обнаруживает набранный первый символ. Приведенная выше логика используется для обнаружения нажатия клавиши Double Tab в консольном ридере Jline2.14

1 ответ

Я посмотрел на документацию по этому методу, и похоже, что у него другая подпись, чем та, которую вы используете.

public final int readCharacter(char[] allowed){...}

Я не видел никаких других перегрузок. У меня нет никакого опыта работы с JLine, но может случиться так, что вам нужно передать аргумент, такой как new char[]{'\t'}, чтобы он мог обнаружить это нажатие клавиши.

Источник: http://jline.sourceforge.net/javadoc/jline/ConsoleReader.html

Другие вопросы по тегам