Mac OSX Java:未激活时接收鼠标事件

Red*_*ios 6 java macos

我正在编写一个Java Swing应用程序,当应用程序未被激活时需要有一个窗口接收鼠标移动事件 - 将它想象成一个全局的always-on-top工具栏,当鼠标经过它时会动画.

从我到目前为止的研究中,我已经看到Mac Java JRE仅在应用程序具有焦点时才传递事件.

它似乎不是操作系统的限制,所以我希望有一个系统属性,一个应用程序包属性或一个启用非激活事件处理的系统调用.如果做不到这一点,那就是一些全局捕获鼠标移动事件并将它们传递给Java应用程序的方法.

谢谢你的任何建议......

编辑:另一个问题:一旦捕获了鼠标移动事件,你如何将它们提供给Swing,以便它们被处理为与本机OS鼠标事件相同 - 通过在鼠标下找到组件并向其发送MouseEvent ...

Mar*_*aux 2

这对于纯 Java 来说是不可能的。
您将需要JNI并用 C++ 或其他语言编写全局按键侦听器(或键盘挂钩)。

以下是有关全局 KeyListener 的一些主题:

关于最后一个主题:是 OSX 的给定解决方案。