Robot.keypress 使用线程:有时不会集中在右边 window
Robot.keypress using a Thread: sometimes doesn't focus on the right window
我正在使用 Robot
实例以编程方式按键。使用扩展 Thread
.
的 class 在 while 循环中按下这些键
我的应用只有一个window,主要window。
尽管我每次按下启动线程的按钮时都请求将焦点放在正确的 window 上,但有时按键事件是在别处而不是我的应用程序上启动的。
为什么会这样?
这是片段:
try {
Robot robot = new Robot();
while(!stopped)
{
fireRandomKey(robot);
Thread.sleep(1000);
}
} catch (AWTException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
如果您的目标是模拟用户交互,则必须在发送按键事件之前使用 Robot 模拟用户鼠标事件(例如单击 JTextField)。
这样一来,您就不会受到可以吸引您注意力的外部交互(桌面通知、其他应用程序等...)
我正在使用 Robot
实例以编程方式按键。使用扩展 Thread
.
我的应用只有一个window,主要window。
尽管我每次按下启动线程的按钮时都请求将焦点放在正确的 window 上,但有时按键事件是在别处而不是我的应用程序上启动的。
为什么会这样?
这是片段:
try {
Robot robot = new Robot();
while(!stopped)
{
fireRandomKey(robot);
Thread.sleep(1000);
}
} catch (AWTException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
如果您的目标是模拟用户交互,则必须在发送按键事件之前使用 Robot 模拟用户鼠标事件(例如单击 JTextField)。
这样一来,您就不会受到可以吸引您注意力的外部交互(桌面通知、其他应用程序等...)