尽管有限:
为焦点事件添加AWTEventListener。只要你的应用程序在点击按钮之前就有焦点,你会收到焦点丢失的事件。然后查询指针位置。
限制是,当然,你的应用程序失去了重点。所以取决于你最终想要实现这一点可能没有用。
如果您不想失去焦点,那么您将不得不临时拍摄整个屏幕的屏幕截图,并显示在屏幕填充窗口中,照常浏览鼠标点击。
第一种方法证明:
import java.awt.AWTEvent;
import java.awt.MouseInfo;
import java.awt.Toolkit;
import java.awt.event.AWTEventListener;
import javax.swing.JFrame;
public class Application1 {
public static void main(String[] args) {
Toolkit.getDefaultToolkit().addAWTEventListener(
new Listener(), AWTEvent.MOUSE_EVENT_MASK | AWTEvent.FOCUS_EVENT_MASK);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private static class Listener implements AWTEventListener {
public void eventDispatched(AWTEvent event) {
System.out.print(MouseInfo.getPointerInfo().getLocation() + " | ");
System.out.println(event);
}
}
}
点击应用程序外部生成:
java.awt.Point[x=198,y=59] | java.awt.event.MouseEvent[MOUSE_EXITED, ...
java.awt.Point[x=976,y=503] | java.awt.FocusEvent[FOCUS_LOST, ...
第二点是在应用程序之外。