使用线程的Robot.keypress:有时不关注右侧窗口

问题描述 投票:0回答:1

我正在使用

Robot
实例以编程方式按键。使用扩展
Thread
的类在 while 循环内按下这些键。

我的应用程序只有一个窗口,即主窗口。

即使我每次按下启动线程的按钮时都请求将焦点放在正确的窗口上,但有时按键事件会在其他地方启动,而不是我的应用程序。

为什么会出现这种情况?

这是片段:

try {
            Robot robot = new Robot(); 

            while(!stopped)
            {
               fireRandomKey(robot);
               Thread.sleep(1000);
            }

    } catch (AWTException e) { 
        e.printStackTrace(); 
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
java focus keypress awtrobot
1个回答
0
投票

如果您的目标是模拟用户交互,则必须在发送按键事件之前使用 Robot 来模拟用户鼠标事件(例如在 JTextField 中单击)。

这样,您将免受外部互动的影响,这些互动可以吸引您的注意力(桌面通知、其他应用程序等......)

© www.soinside.com 2019 - 2024. All rights reserved.