2017-02-22 3 views
0

JLine 2を使用して、Javaでコンソールアプリケーションを作成しています。パスワードをコンソールで10秒間表示させ、その後(GNU端末で)パスワードを消去する必要があります。JLine2で文字列を数秒間表示する

私はこれの中で、別のものを試してみました:

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

が、運。テキストが表示されないか、テキストが消去されません。

答えて

0

[OK]を、私は最終的に(クラスは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に電話する必要があります。

ユーザーからの入力を一定時間待つには、Thread.sleep()の代わりにreadCharacter()を使用します。

関連する問題