2017-02-22 13 views
0

Я использую JLine 2 для написания консольного приложения на Java. Мне нужно сделать пароль видимым на консоли на 10 секунд, а затем стереть его (на терминале GNU).Показать строку в течение нескольких секунд с помощью JLine2

Я пробовал разные вещи, среди которых:

putString(pass); 
Thread.sleep(10*1000); 
resetLine(); 

, но не повезло. Либо текст не отображается, либо текст не очищается.

ответ

0

Хорошо, я, наконец, придумал следующее (класс расширяет ConsoleReader):

public boolean showPassword(String pass, int millis) { 
    try { 
     resetPromptLine(" password>", pass, pass.length()); 
     Thread.sleep(millis); 
     if (setCursorPosition(0) && killLine()) resetPromptLine(" password>", "", 0); 

    } catch (InterruptedException | IOException e) { 
     e.printStackTrace(); 
    } 
    return false; 
} 

Я использую resetLine показать настраиваемое приглашение и пароль; Я также устанавливаю курсор в конец строки. Я немного подожду. Я установил курсор в конец строки и «убил строку». Чтобы пароль фактически исчез, я должен снова позвонить resetPromptLine.

Чтобы подождать ввода от пользователя по данному времени, используйте readCharacter() вместо Thread.sleep().

 Смежные вопросы

  • Нет связанных вопросов^_^