gpt4 book ai didi

java - 是否可以让 MouseMotionListener 监听所有系统鼠标运动事件?

转载 作者:搜寻专家 更新时间:2023-10-31 19:51:20 25 4
gpt4 key购买 nike

我的样板监听器:

class MyMouseMotionListener implements MouseMotionListener {
public void mouseDragged(MouseEvent e) {
System.out.println("Dragged...");
}

public void mouseMoved(MouseEvent e) {
System.out.println("Moved...");
}}

很简单,但我要将它添加到什么地方才能监听系统范围的事件?我一直在研究 GraphicsDevice 和 AccessibleContext 子类之类的东西——它们不直接提供 MouseMotionListeners 的添加,但我希望它们能给我一些关于如何实现它的想法。

编辑:这根本不是基于事件的,但我发现了这一点:

MouseInfo.getPointerInfo().getLocation()

实际上在我的应用程序上下文之外返回鼠标位置,即使应用程序本身没有焦点。有什么方法可以观察到这一点并在其值发生变化时调度事件?

最佳答案

您可以使用 Toolkit.addAWTEventListener(AWTEventListener listener, long eventMask) 订阅 Java 容器层次结构中的所有鼠标事件。 . eventMask参数确定监听器将接收哪些事件。

所以你的代码看起来像这样:

Toolkit.getDefaultToolkit().addAWTEventListener(new MyMouseMotionListener(), <a href="http://docs.oracle.com/javase/8/docs/api/java/awt/AWTEvent.html#MOUSE_MOTION_EVENT_MASK" rel="noreferrer noopener nofollow">AWTEvent.MOUSE_MOTION_EVENT_MASK</a>);

关于java - 是否可以让 MouseMotionListener 监听所有系统鼠标运动事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/504559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com