【问题标题】:Display a string just for a few seconds with JLine2使用 JLine2 仅显示几秒钟的字符串
【发布时间】:2017-07-12 04:10:05
【问题描述】:

我正在使用JLine 2 用Java 编写控制台应用程序。我需要在控制台上显示密码 10 秒钟,然后将其删除(在 GNU 终端上)。

我尝试了不同的方法,其中:

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

但没有运气。要么文字不显示,要么文字没有被清除。

【问题讨论】:

    标签: java terminal jline2


    【解决方案1】:

    好的,我终于想到了以下内容(类扩展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()

    【讨论】:

      猜你喜欢
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多