【发布时间】:2012-09-13 10:30:19
【问题描述】:
在 Java 中是否有可能在“按下时”获取用户按下的内容 而不是在他击中返回时?
因此,例如,如果用户点击 ABC 然后点击 Ctrl+Z 我希望程序在那里结束 (到达流的结尾)而不是,之后,当他按下返回时。
【问题讨论】:
-
您可以创建一个只有行的 gui 应用程序,以便您可以监听用户交互。
标签: java
在 Java 中是否有可能在“按下时”获取用户按下的内容 而不是在他击中返回时?
因此,例如,如果用户点击 ABC 然后点击 Ctrl+Z 我希望程序在那里结束 (到达流的结尾)而不是,之后,当他按下返回时。
【问题讨论】:
标签: java
当您按下 Ctrl+Z 时,Windows 实际上并没有结束流;您可以继续编辑该行,当您按 Return 时,应用程序只会看到流的结尾。
这与 Unix 略有不同,其中 Ctrl+D 会将当前缓冲的行发送到应用程序(没有换行符),应用程序只会感知在 Return 或另一个 Ctrl+ 之后按 Ctrl+D 发送空缓冲区时的流D.
编辑:在 Windows 上,您也许可以使用 SetConsoleMode 函数来读取单个字符。我不确定你会怎么称呼它;似乎有三个选择:
【讨论】: