1

在Java中是否有可能让用户在“按下时”而不是在他点击返回时按下?

因此,例如,如果用户点击 ABC,然后点击Ctrl+ Z,我希望程序在此处结束(到达流的结尾),而不是在他按下回车键之后。

4

1 回答 1

4

Ctrl当您按下+时,Windows 实际上并没有结束流Z;您可以继续编辑该行,当您按下 时,应用程序只会看到流的结尾Return

这与 Unix 略有不同,其中Ctrl+会将当前缓冲的行发送到应用程序(没有换行符),并且当您在 a或另一个+之后按+D发送空缓冲区时,应用程序只会感知流的结尾。CtrlDReturnCtrlD

编辑:在 Windows 上,您可以使用SetConsoleMode函数来读取单个字符。我不确定你会怎么称呼它;似乎有三个选择:

  1. 通过 JNI 到调用 SetConsoleMode 的 DLL
  2. 调用调用 SetConsoleMode 的程序
  3. 将您的程序包装在调用 SetConsoleMode 的启动器中
  4. 编辑:使用 JNA 调用 SetConsoleMode。
于 2012-09-13T11:09:02.473 回答