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

2022-09-01 20:22:28

我需要实现一个具有类似ncurses功能的控制台应用程序(可能是在Java中)(例如导航菜单和重绘整个屏幕)。

到目前为止,我能找到的唯一解决方案是CHARVA(“A Java Windowing Toolkit for Text Terminals”),tuipeer(“A Text User Interface for the Java AWT”)和一篇非常古老的Dr. Dobb的文章(“A Text UI for the Java AWT”)。

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

有没有标准的方法,比如用AWT / Swing,来做到这一点?还有哪些其他选择?


答案 1

自2010年以来,兰特纳有:

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

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


答案 2

你可能想在这里为这个问题投票:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6351276

从本质上讲,在解决此问题之前,没有JNI就没有获得类似ncurses的功能的好方法。


推荐