Java Swing : Possible to send robot keyboard input to specific JFrame windows?

标签 java swing awt awtrobot

我正在使用生成新 JFrame 窗口的第三方 java 库。如何让 java.awt.Robot 在出现时将点击和键盘输入发送到该特定窗口?我会在一个单独的线程中运行它,以便在机器人将输入发送到特定 JFrame 窗口时可以在主应用程序上执行其他 Activity 。

请注意,我没有 api 访问生成此 JFrame 窗口的进程。

目前,当 JFrame 窗口最小化或关闭时,机器人将继续向任何可见的当前 JFrame 窗口发送输入。

最佳答案

您获得应用程序启动的所有框架:

Frame[] frames = JFrame.getFrames();
//find the frame your looking for and call click(frame)

点击组件的中心

click(Component c){

//get center 
Dimension size = c.getSize();
Point center = new Point(size.width/2, size.height/2);

//you might want to check if the component is showing.

Robot.mouseMove(center.getX(), center.getY());
Robot.keyPress(KeyEvent.VK_A);

}

关于Java Swing : Possible to send robot keyboard input to specific JFrame windows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8497789/

相关文章:

java - 使用java/JMF的开源网络 session 系统

java - 向 JList 添加元素

当方法停止执行时,Java 尝试更改 JFrame 标题

java - JDialog 不可见

java - 单击按钮时如何使用 Action 监听器和其他东西来获取两个文本字段的值

java - 如何使用jdbc通过单击数据库中的按钮来提交数据?

java - 如何向 ComboBoxTableCell 添加键盘编辑支持

java - 使用javamail读取同一封邮件的邮件和附件名称

java - NetBeans & Swing - 动态添加 JPanel 到 JDialog

java - 如何用Java中的Canvas根据屏幕的宽度和高度绘制字符串或矩形