JAVA-我不想点击我的应用程序让其他应用程序失去焦点

时间:2010-05-06 12:03:03

标签: java swing desktop-application

哇,你可能会说一个愚蠢的问题。但这可能吗?我在Jpanel中有一个鼠标移动事件,它甚至在应用程序不在焦点时也可以工作,现在我可以为点击事件或类似事件提供类似的东西。最重要的是,当我点击我的应用程序时,我不希望其他应用程序(甚至像主菜单这样的东西)失去焦点。 我想到了系统的事件队列,但我不确定那会引导我去哪里。

提前致谢。

[编辑 - 目的] 我想创建一个模拟用户以后与系统交互的应用程序。例如,用户使用鼠标并点击和写入,我的应用程序将在2小时内模仿。当然我需要一个系统挂钩的外部事件,但我想避免os依赖的代码,所以我基本上捕获屏幕,把它带到我的应用程序,例如用户点击捕获的图片中的图标,然后进行来生活,我将坐标转换为真实的图标并单击它(使用机器人),这样我就可以在我自己的应用程序中捕获用户的事件。问题发生在用户点击主菜单或右键单击时(他在我的应用程序中执行此操作,我的应用程序对系统执行此操作,因此我的应用程序介于其间)并且当用户尝试时,真正的主菜单将失去焦点点击其中一个项目。

抱歉我的英语。

1 个答案:

答案 0 :(得分:1)

我仍然不确定我是否按照你要做的去做。但是当你点击它时应用程序获得焦点的概念是GUI的基础,我怀疑相当难以解决。

我刚刚发现了这个:

可聚焦Windows

为了支持调色板窗口和输入方法,客户端代码可以防止Window成为焦点窗口。通过传递性,这可以防止Window或其任何后代成为焦点所有者。不可聚焦的Windows可能仍然拥有可聚焦的Windows。默认情况下,每个Frame和Dialog都是可聚焦的。默认情况下,每个不是框架或对话框的窗口,但其最近的拥有框架或对话框在屏幕上显示,并且在其焦点遍历循环中至少有一个组件。要使窗口不可聚焦,请使用Window.setFocusableWindowState(false)。

在这个doucment http://java.sun.com/j2se/1.5.0/docs/api/java/awt/doc-files/FocusSpec.html

听起来它可能会做你想要的。