2

有没有办法检查用户是否在 Java 的控制台窗口中输入?我的程序打印它收到的有关客户端连接的信息System.out.print(),我希望它在用户键入时暂时停止打印信息。Scanner使用该类在单独的线程上读取用户输入。我需要能够查看用户是否输入了任何内容,并且仍然有用户输入的任何内容(如果有的话)可供扫描仪使用。如果可能的话,我想避免使用外部库并坚持使用 java 库。

4

3 回答 3

2

不,没有办法直接使用控制台(我知道)来做到这一点 - 控制台的内容只有在按下输入后才会发送到应用程序,然后将可用于Scanner.

解决它的一种方法是制作自己的控制台,您可以从中读取和写入。然后你就可以做任何你想做的事情(包括检查是否有任何东西被突出显示等等)。如果您不知道如何编写 GUI,您应该研究一下。Oracle 有一个关于使用 Swing 的 GUI 的教程

于 2013-05-18T22:33:20.810 回答
0

监听用户控制台的线程,在用户开始打字时产生中断,而打印信息的其他线程需要重置中断,你所要做的就是实现场景。

于 2013-05-18T22:34:52.293 回答
0

我想你正在寻找Thread.sleep(milliseconds);. 在用户完成之前使用它,你应该得到你想要的。

下次,请详细说明您的问题。

于 2013-05-18T22:35:36.450 回答