我和这里的人有同样的问题,因为我需要在 OS X 上拖动帧时跟踪它的位置。这个问题在那里没有得到解决,所以:
我如何告诉框架在其(OS-native)标题栏上发生了鼠标按下事件,或者更一般地说,鼠标按下事件发生在屏幕上的某处?
从 Java 1.5 开始
import java.awt.MouseInfo;
public class Mouse {
public static void main(String[] args) {
while ( true ) {
System.out.println( MouseInfo.getPointerInfo().getLocation() );
}
}
}
编辑:
本机键盘鼠标钩子
使用纯Java,您永远无法判断鼠标按下事件发生在其(OS-native)标题栏上,或者在这种情况下,您的应用程序窗口之外的任何事件(不包括标题栏)。
作为 AWT/Swing 中的程序员,您的上下文、领域和权力只存在于应用程序窗口中,理解这一点很重要。最好的办法是使用 JNI。