Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 防止系统托盘图标在单击时窃取焦点_Java_Focus_Swt_Awtrobot - Fatal编程技术网

Java 防止系统托盘图标在单击时窃取焦点

Java 防止系统托盘图标在单击时窃取焦点,java,focus,swt,awtrobot,Java,Focus,Swt,Awtrobot,我正在用Java编写一个应用程序,通过在系统托盘中放置一个图标。当这个图标被点击时,我希望它能通过类自动地在任何文本字段中键入一些键,这些文本字段在点击时处于焦点位置,可以在任何窗口中。不幸的是,单击系统托盘图标会将焦点从先前聚焦的窗口中偷走,从而偷走按键 Robot robot = new Robot(); robot.keyPress(KeyEvent.VK_ALT); robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.V

我正在用Java编写一个应用程序,通过在系统托盘中放置一个图标。当这个图标被点击时,我希望它能通过类自动地在任何文本字段中键入一些键,这些文本字段在点击时处于焦点位置,可以在任何窗口中。不幸的是,单击系统托盘图标会将焦点从先前聚焦的窗口中偷走,从而偷走按键

Robot robot = new Robot();

robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_TAB);

// ... The keyPress/keyRelease pairs for the actual characters now begin

有没有办法将文本输入到先前聚焦的窗口?

可能没有,至少不容易

虽然不能将其视为正式解决方案,但我发现在发出文本键之前立即发出ALT+TAB键的笔划取得了一些成功

Robot robot = new Robot();

robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_TAB);

// ... The keyPress/keyRelease pairs for the actual characters now begin
正如我所说,这远不是一个正式的解决方案,因为ALT+TAB组合不能作为通用焦点转换命令。然而,这项法案似乎适合我的特殊情况