在Java中获得文本用户界面(类似ncurses)功能的最佳方法是什么?


问题内容

我需要使用类似ncurses的功能(例如,浏览菜单和重绘整个屏幕)来实现一个控制台应用程序(可能是Java)。

到目前为止,我能找到的唯一解决方案是CHARVA(“用于文本终端的Java窗口工具包”),tuipeer(“用于Java
AWT的文本用户界面”
)和一本非常古老的Dr. Dobb的文章(“ A Java
AWT的文本UI
)。

到目前为止,CHARVA是我能找到的最好的东西,但是我不喜欢使用JNI来包装诅咒的想法。

是否有任何标准方法(例如AWT / Swing)做到这一点?还有什么其他选择?


问题答案:

自2010年以来,有Lanterna:

Lanterna是一个Java库,允许您在纯文本环境中编写简单的半图形用户界面,这与C库curses非常相似,但功能更多。Lanterna支持与xterm兼容的终端和终端仿真器,例如konsole,gnome-
terminal,putty,xterm等。Lanterna的主要优点之一是它不依赖于任何本机库,而是在纯Java中运行100%。

更多内容在这里:https :
//github.com/mabe02/lanterna