gpt4 book ai didi

java - 使用 JCurses 从键盘读取而不按 "enter"

转载 作者:行者123 更新时间:2023-11-29 09:17:54 24 4
gpt4 key购买 nike

我正在编写一个应用程序,它要求我从控制台读取一个 key ,而不必等待用户按下回车键。我读过 JCurses 库可以提供帮助。

我试过像这样使用 Toolkit.readCharacter():

InputChar c = Toolkit.readCharacter();
system.out.println(c.getCharacter());

但问题在于,无论您输入多少个字符,readCharacter() 方法都不会结束执行。即使你按回车,它仍然像是在等你输入一个字符。

我非常感谢任何使用 JCurses 或任何其他方式的帮助。

最佳答案

Java Curses 有几个特定的​​击键识别方法,但将自己绑定(bind)到外部库以获取单个功能可能不是最佳解决方案。

您所追求的可以通过创建终端样式的 Swing 应用程序并使用 KeyListener 来检测击键事件来实现。然而,MadProgrammer 在 How to make esc stop a method 中指出这样的解决方案可能存在“焦点问题”。

因此,如果您想跟踪特定的击键,或者想根据不同的用户输入影响程序行为,我建议使用 key bindings它们作为 Swing 的一部分实现。

例如

component.getInputMap(WHEN_IN_FOCUSED_WINDOW).put
(KeyStroke.getKeyStroke("F1"),"actionName");
component.getActionMap().put("actionName", yourAction);

其中 component 是任何 JComponent 对象(假设是终端显示),yourAction 是任何 Swing Action 。对于“控制台”应用程序,使用此处所示的 getInputMap() 的参数化形式更可取,因为用户必须在顶层窗口中进行击键,因此组件焦点无关紧要。

关于java - 使用 JCurses 从键盘读取而不按 "enter",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8378530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com