使用Java Robot类。如何停止执行该计划?

时间:2011-12-06 22:01:59

标签: java awt awtrobot

我曾经多次在java中使用Robot类作为一些快速的解决方案。停止执行始终是一个问题(在测试期间需要多次执行)。我想要的是一个KeyListener,它将监听键的键/组合,并将停止程序。从我的简短读物来看,似乎你无法在没有框架或类似东西的情况下嵌入一个关键的监听器。对我来说,焦点意味着最前沿的窗口。这是错误的定义吗?如果这是正确的定义,我无法保持窗口的焦点,因为我正在爬行我的机器人。我该如何解决这个问题?

在键入此内容时,我想出了一个非理想的解决方案,以编程方式将窗口置于焦点,测试按键,然后以编程方式将其置于焦点并继续。这可能吗?还有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

你想要一个全局键监听器,无论什么应用程序有焦点,它都能监听键吗?这与Robot / pure Java无法实现。

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

答案 1 :(得分:1)

好吧,我不太熟悉Java的机器人,但KeyListener问题可以通过输入/动作地图解决(指南here)。

或者,您可以使用带有确认消息的JOptionPane(“继续机器人?Y / N”),而不是测试按键。尽管如此,仍然不是最好的解决方案。