【发布时间】:2015-12-06 23:36:22
【问题描述】:
我目前正在开发一个 Java 命令行应用程序,我想让它具有交互性。我的意思是,我有 2 个线程:
- 一个线程将一些信息永久写入标准输出
- 第二个线程只从标准输入读取,正在等待用户的一些命令
但关键是,当我在第一个线程向标准输出写入内容时输入命令时,这真的很烦人,命令是“cut”。
例如: 我想输入命令“set infolevel 2”,当我输入时,第一个线程输出“一些信息 1234”。
我的控制台输出可能如下所示:
set inf // user typing command into stdin
some information 1234 // first thread writes out information
olevel 2 // continuing reading command from stdin
如果有人能告诉我是否有类似的库/API,那就太棒了。谢谢!
【问题讨论】:
-
我认为这样做的方法是一次从标准输入读取一个字符(不知道具体怎么做),当从另一个线程进入新行时,发出一个字符返回,打印输出,然后是换行符和当前行字符。
-
你问的是有两个单独的文本区域,一个用于输入,一个用于输出?如果是这样,请查看stackoverflow.com/questions/12945537/…,了解如何将标准输出重定向到 JTextArea。
-
您可以使用 JCurses 库在控制台中创建单独的窗口。 sourceforge.net/projects/javacurses
-
谢谢,我稍后再看看..
标签: java multithreading stdin