当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《是否可以让MouseMotionListener监听所有系统鼠标运动事件?》经验,为你挑选了1个好方法。

我的样板监听器:

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

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

很简单,但是为了收听系统范围的事件,我应该添加什么?我一直在研究像GraphicsDevice和AccessibleContext子类这样的东西 - 它们不直接添加MouseMotionListener,但我希望它们可以让我知道如何实现它.

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

MouseInfo.getPointerInfo().getLocation()

实际上,即使应用程序本身没有焦点,也会在我的应用程序上下文之外返回鼠标位置.有没有办法观察这个并在其值发生变化时派遣一个事件?



1> Michael Myer..:

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

所以你的代码看起来像:

Toolkit.getDefaultToolkit().addAWTEventListener(new MyMouseMotionListener(), AWTEvent.MOUSE_MOTION_EVENT_MASK);

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有