Java 防止系统托盘图标在单击时窃取焦点
我正在用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
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组合不能作为通用焦点转换命令。然而,这项法案似乎适合我的特殊情况