当前位置: 首页 > 面试题库 >

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

梁研
2023-03-14
问题内容

我需要使用类似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



 类似资料:
  • 问题内容: 困难在于它应该是跨平台的。Windows 2000,XP,Vista,OSX,Linux和其他Unix变体。我正在寻找可以针对所有平台完成此操作的代码片段,以及一种检测平台的方法。 现在,你应该知道的错误4787931是不能正常工作,所以请不要为我提供教科书的答案,我可以在手册中找到这些我自己。 问题答案: 你引用的错误(错误4787391)已在Java 8中修复。即使你使用的Java

  • 我有一个变量(testvariable),根据变量的isNull,我需要做一个方法调用,如下所示 在可选的

  • 问题内容: 我刚刚开发了一个Android应用,希望免费分发。 为了能够从我的工作中赚钱,我想在应用程序中添加一些广告或通知。如果用户决定捐赠一些钱,他将使用某种解锁代码收到“捐赠”版本的解锁代码。 是否有任何“最佳实践”可在Android中实现? 谢谢! 问题答案: 就在这里。这是应用内结算。:-) 由于主持人评论而被编辑。 阅读完上面的链接后,您将了解可以实现各种提供各自所需功能的软件包。就您

  • 问题内容: 我有一个Python脚本,它将执行许多需要root级权限的事情,例如在/ etc中移动文件,使用apt-get安装等等。我目前有: 这是进行检查的最佳方法吗?还有其他最佳做法吗? 问题答案: 根据“比许可更容易请求宽恕”原则: 如果您担心自己的不可携带性,则无论如何都不应对此感到厌烦。

  • 我已经启动并运行了AngularJS和web.api WAAD身份验证。对于客户端,我使用了很棒的库adal.js。对于后端,我使用Microsoft.OWIN.Security.OAuth。这部分进行得相当顺利。 现在我要实现基于角色的授权(将映射到WAAD组)。组不包括在身份验证令牌中,所以我必须向Azure Graph API请求它们。我看到了各种实现方法,例如使用自定义声明提供程序、向pr

  • 问题内容: 这就是我逐行处理文件的方式。但是,在这种情况下,我想在每次迭代中向处理器发送 两 行文本。(我正在处理的文本文件实际上在两行上存储了一条记录,因此每次都向处理器发送一条记录。) 用Java做到这一点的最佳方法是什么? 问题答案: 为什么不读两行呢? 假设您可以依靠输入文件中包含完整的2行数据集。