1

我有一个机器人程序来测试我的服务器。如果按下任何键,我希望它退出循环,但不希望它停止并等到按下键。因此循环将继续运行,直到按下键盘上的任何键。

这就是我现在尝试做的方式,但不起作用

        if (System.in.available()>0)
        {
            System.out.println("key pressed");
            break; // exit loop
        }
4

1 回答 1

1

您的选择是:

  • 创建一个 GUI 窗口。您可以通过按键事件侦听器从 awt/swing 窗口接收异步按键事件。

    请参阅此处最后一个答案中的代码示例。

  • 在您的程序中创建单独的线程以等待输入键按下,然后通知主循环线程结束。

  • 使用jInputjLine这样的本机库(或者使用 jni/jna 编写您自己的更简单的等价物)。

    这允许您连接到本机操作系统的异步键处理,尽管即便如此,通常首先存在对窗口系统的微妙依赖。

于 2012-04-14T13:58:00.743 回答