首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JLine2只显示几秒钟的字符串

使用JLine2只显示几秒钟的字符串
EN

Stack Overflow用户
提问于 2017-02-22 08:10:57
回答 1查看 42关注 0票数 0

我正在使用JLine 2编写一个用Java编写的控制台应用程序。我需要在控制台上显示一个密码,比如10秒,然后擦除它(在GNU终端上)。

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

代码语言:javascript
复制
putString(pass); 
Thread.sleep(10*1000); 
resetLine();

但没有运气。或者文本不显示,或者文本没有被清除。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-23 12:36:58

好的,我终于想出了以下内容(类扩展了ConsoleReader):

代码语言:javascript
复制
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()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42385921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档