我曾经多次在java中使用Robot类作为一些快速的解决方案。停止执行始终是一个问题(在测试期间需要多次执行)。我想要的是一个KeyListener,它将监听键的键/组合,并将停止程序。从我的简短读物来看,似乎你无法在没有框架或类似东西的情况下嵌入一个关键的监听器。对我来说,焦点意味着最前沿的窗口。这是错误的定义吗?如果这是正确的定义,我无法保持窗口的焦点,因为我正在爬行我的机器人。我该如何解决这个问题?
在键入此内容时,我想出了一个非理想的解决方案,以编程方式将窗口置于焦点,测试按键,然后以编程方式将其置于焦点并继续。这可能吗?还有更好的方法吗?
答案 0 :(得分:2)
你想要一个全局键监听器,无论什么应用程序有焦点,它都能监听键吗?这与Robot / pure Java无法实现。
但是,如果在Windows上运行,则可以使用JNA执行此操作。 JNA的KeyHook example是一个很好的起点。
答案 1 :(得分:1)
好吧,我不太熟悉Java的机器人,但KeyListener问题可以通过输入/动作地图解决(指南here)。
或者,您可以使用带有确认消息的JOptionPane(“继续机器人?Y / N”),而不是测试按键。尽管如此,仍然不是最好的解决方案。