java - 识别 Java 扫描仪或控制台应用程序中的箭头键

标签 java console java.util.scanner user-input

我正在编写一个 Java 应用程序,它使用 ScannerConsole 来获取用户的输入。我想添加命令历史记录支持,以便用户可以使用箭头键搜索以前的输入(类似于终端)。有没有办法做到这一点?现在,当我使用 ScannerConsole 时,我会在按下箭头键时得到像 ^[[A 这样的奇怪符号。

我已阅读有关 KeyListenerKeyEvent 的内容,但我的应用程序不使用 GUI。

谢谢!

最佳答案

好问题 - +1。在 Windows 上,我会使用 SetConsoleMode 来更改控制台以获取原始输入,但在 *Nix 上似乎涉及更多工作。遗憾的是,我现在没有任何代码可以向您展示,但请查看此链接,看看是否有帮助。

http://www.darkcoding.net/software/non-blocking-console-io-is-not-possible/

关于java - 识别 Java 扫描仪或控制台应用程序中的箭头键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35852568/

相关文章:

java - 使用扫描仪超出时间限制 - Java

console - 如何在 gcloud 中省略用户交互

JavaScript - 通过 JavaScript 访问网络选项卡

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - 扫描程序在使用next()或nextFoo()之后跳过nextLine()吗?

linux - 如何在linux上发送POST请求

java string.split() 问题

java - 如何将 html 片段注入(inject)到包含有效 html 的字符串中?

Java Hash Multi Map(键多值)实现

java - 如何避免 SpringJUnit4ClassRunner 在使用 JMockit 模拟之前初始化 bean?