用于创建基于文本的图形用户界面的Java库
Lanterna 是一个 Java 库,允许你在纯文本环境中编写简单的半图形用户界面, 与 C 库 curses 非常相似,但功能更丰富。 Lanterna 支持 xterm 兼容终端和终端模拟器,如 konsole、gnome-terminal、putty、xterm 等。 Lanterna 的主要优势之一是不依赖任何原生库,而是 100% 纯 Java 运行。
Also, when running Lanterna on computers with a graphical environment (such as Windows or Xorg), a bundled terminal emulator 使用Swing编写的程序将被采用,而非标准输出。这样,您就可以像往常一样从IDE中进行开发。 (它们中的大多数在输出窗口中不支持ANSI控制字符),然后无需更改任何代码即可部署到你的无头服务器上。 Lanterna 分为三层结构,每一层都构建在上一层之上,你可以轻松选择最适合自己需求的那一层。
第一种是低级终端接口,它为你提供对终端文本区域最基本的控制。 你可以在Cursor中移动,并为输出到屏幕的字符启用特殊修饰符。你可以在包com.googlecode.lanterna.terminal中找到这些类。
第二种是全屏缓冲区,整个文本屏幕在内存中,允许你在将更改刷新到实际终端之前进行写入。 这使得向终端屏幕写入类似于修改位图。你可以在包com.googlecode.lanterna.screen中找到这些类。
第三层是一个完整的GUI工具包,包含窗口、按钮、标签及其他一些组件。 它采用非常简单的窗口管理系统(基本上所有窗口都是模态的),使用起来快速且方便。 你可以在包 com.googlecode.lanterna.gui2 中找到这些类。
Lanterna 可通过 Sonatype OSS hosting 在 Maven Central 上获取。以下是你需要使用的配置:
<dependency>
<groupId>com.googlecode.lanterna</groupId>
<artifactId>lanterna</artifactId>
<version>3暂无开放 Issues,或尚未同步最近议题。