首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java.awt.Robot.keyPress()/mousePress()之后重新获得焦点

在java.awt.Robot.keyPress()/mousePress()之后重新获得焦点
EN

Stack Overflow用户
提问于 2010-01-28 16:09:57
回答 3查看 2K关注 0票数 3

我编写了一个仅使用键盘控制另一个应用程序的应用程序。更具体地说,当按下键盘上的某个键时,该应用程序模拟按键和鼠标单击。例如,按下“x”键模拟鼠标点击右上角的X,然后稍作休眠2秒,然后按“enter”确认退出对话框。很简单。我正在用Java开发这个应用程序。

使用java.awt.Robot发送按键或鼠标单击非常容易。我正面临着一个小问题。假设我配置了一个键,它将在屏幕上的某个地方单击。问题是,连续的按键不再被捕获,因为我的应用程序由于鼠标在窗口外单击而失去了焦点。

我现在的问题是:确保我的主应用程序保持焦点的最好方法是什么?有没有办法在发出按键和鼠标点击后再次聚焦我的应用程序?有没有更好的方法?

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2010-10-30 23:22:06

如果您的应用程序失去了焦点。因为您或您的Robot单击了其他位置,Robot必须再次单击该应用程序才能发送新密钥。在c/c++中,您可以强制将焦点放在应用程序上(一个重要的任务),而不是在Java中!

票数 2
EN

Stack Overflow用户

发布于 2010-10-30 23:29:28

您可能想看看Component.requestFocus()是否可以做您想做的事情。

但是请注意,窗口聚焦具有非常依赖于平台的行为,因此您可能需要做相当多的测试,以确保您的代码在所有情况下都能执行您想要的操作。

票数 0
EN

Stack Overflow用户

发布于 2013-05-14 20:30:45

我设法防止应用程序在Java中失去所有焦点。

通过在框架(或对话框)上放置一个WindowFocusListener并调用setVisible(false),然后在windowLostFocus中调用setVisible(true),该组件将在消失后立即重新出现(虽然不是最漂亮的解决方案,但它确实可以工作)。

然后调用component.requestFocus(),你的机器人应该能够继续它停止的地方

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2153103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档