我需要编写一个简单的基于终端的程序,
总而言之,我们的想法是为没有GUI的类Unix环境编写文本编辑器。
但是,我在步骤2和3中遇到了问题。
System.out打印的所有文本都是不可变的。我该如何改变这种行为?
如何为Enter + S实现一个键监听器。我可以使用GUI轻松完成它,但是如何在基于控制台的程序中添加监听器?在输入程序时,只需在修改后的文本中添加一个新行即可。 另外,如何阅读已经打印到终端的文本?
P.S。我必须使用JDK 1.4,因此如果相关,则无法访问Scanner和Console类。我也认为在Java中不可能完成这样的任务,所以你可以在C / C ++中建议一个解决方案毕竟,他们在MS-DOS时代以某种方式做到了。
谢谢!
答案 0 :(得分:4)
您需要的是charva之类的内容。它是一个Java库,可以完成旧的termcap / termio / curses / ncurses库在24 x 80终端时所做的事情。
Charva(和curses等)通过向终端或终端仿真器发送控制代码和/或转义序列来移动光标,写入和擦除字符等工作。在现代系统中,它们依赖于提供ANSI或VT100终端仿真的控制台......或类似的东西。
答案 1 :(得分:1)
这些事情在Unix中使用curses库完成:http://en.wikipedia.org/wiki/Curses_(programming_library)。
答案 2 :(得分:1)
http://sourceforge.net/projects/javacurses/你需要这样的东西。试着找一些免费的java curses库