Ява Лантерна не может прочитать ввод с терминала

1

У меня проблемы с использованием метода readInput() из пакета lanterna. Мой кодекс

    Terminal terminal = TerminalFacade.createSwingTerminal();
    terminal.enterPrivateMode();
    Key key = terminal.readInput();
    if(key.getKind()==Key.Kind.Escape){
    terminal.moveCursor(6, 6);
    terminal.putCharacter('X');

не позволяет мне делать какие-либо входные данные в терминале и поэтому создает исключение nullpointer при проверке key.getKind. У кого-нибудь есть идея, почему это происходит?

Теги:
lanterna

1 ответ

2
Лучший ответ

Метод readInput не блокирует. Это означает, что он не будет висеть до тех пор, пока не будет найден вход (например, Scanner). Таким образом, вам понадобится ваш собственный "метод блокировки", который ждет ввода:

Key key = terminal.readInput();
while(key == null) {
    Thread.sleep(5); //whatever low value
    key = terminal.readInput();
}
// here key will not be null, so no NullPointerException

Ещё вопросы

Сообщество Overcoder
Наверх
Меню