4

我已经多次在 Java 中使用 Robot 类作为处理琐碎任务的快速解决方法。停止执行总是一个问题(在测试过程中需要多次)。我想要的是一个 KeyListener,它将监听一个键/键组合并停止程序。从我的简短阅读来看,您似乎无法在没有框架或类似焦点的情况下嵌入关键听众。对我来说,焦点意味着最前沿的窗口。这是错误的定义吗?如果这是正确的定义,我无法让窗口保持焦点,因为我正带着我的机器人四处爬行。我怎么解决这个问题?

在键入此内容时,我想出了一个不理想的解决方案,即以编程方式使窗口聚焦,测试按键,然后以编程方式使其失焦并继续。这可能吗?有没有更好的办法?

4

2 回答 2

2

您是否想要一个全局键监听器,无论哪个应用程序具有焦点,它都会监听键?这对于机器人/纯 Java 是不可能的。

但是,如果在 Windows 上运行,您可以使用JNA执行此操作。JNA 的KeyHook 示例是一个很好的起点。

于 2011-12-06T23:01:16.477 回答
1

好吧,我不太熟悉 Java 的机器人,但 KeyListener 问题可能可以通过输入/操作映射(此处的指南)解决。

或者,您可以使用带有确认消息(“Continue Robotting?Y/N”)的 JOptionPane,而不是测试按键。虽然仍然不是最好的解决方案。

于 2011-12-06T22:21:13.437 回答