我正在用Java编写控制台应用程序。它类似于聊天客户端:输入和输出是异步创建的。问题是,如果在用户处于打字过程中进行某些输出时,线条会混淆在屏幕上。在Java控制台应用程序中保持输入/输出分离
我正在寻找一个解决方案,它允许我有一个输出区域与输出区域分开。此刻我正在使用一个额外的线程轮询System.in上的BufferedReader。
该程序需要在Linux服务器上运行,并通过ssh会话进行访问。因此,只有在这种环境下才能使用的提示都很好。
是否有任何高级库可以做到这一点?或者是否有使用终端/ ANSI代码的巧妙技巧? ANSI代码(保存游标)和r(恢复游标)可能会有所帮助,但我如何知道在哪里跳转以执行输出,以及如何处理滚动?
虽然我喜欢图书馆由于怀旧。它有它的耀斑。但它是一个完整的小部件库。您可以使用任何小部件库(例如AWT,SWT)并为此设置两个文本区域。如果没有关于如何分离进出的简短片段,我没有看到使用jcurses的要点 – benez 2015-09-04 10:08:43
@kewlbfy OP需要一个在终端中工作的解决方案。你提到的小部件库不适用于这种情况 – 2015-09-05 16:41:22