如何检查是否以及在swing中按下了哪个鼠标按钮

xjreopfe  于 2021-06-29  发布在  Java
关注(0)|答案(3)|浏览(356)

如何检查当前是否有任何鼠标按钮被按下,如果是,是哪一个?
问题是我需要用这些信息 MouseListener.mouseEntered() . 我查过了 MouseEvent 但是我找不到对我有帮助的方法。
这个 getButton() 方法似乎只有在按钮状态发生变化时才返回值。
有没有一种方法可以在不手动跟踪这个vie的情况下找到答案 MouseListener.mousePressed()/mouseReleased() 方法。

dm7nw8vv

dm7nw8vv1#

如何检查当前是否有任何鼠标按钮被按下,如果是,是哪一个?
您可能希望根据按下的按钮调用特定代码,以便执行以下操作:

if (SwingUtilities.isLeftMouseButton(...))
   // do something
umuewwlo

umuewwlo2#

您可以先看看如何编写鼠标侦听器,特别是mouseevent的javadocs,getbutton方法。
但是,有一些跨平台的考虑需要考虑,swingutilities.isleftmousebutton和等效方法都忽略了这一点。。。

d6kp6zgx

d6kp6zgx3#

这会解决你的问题

long eventMask = AWTEvent.MOUSE_MOTION_EVENT_MASK + AWTEvent.MOUSE_EVENT_MASK;

    Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
        public void eventDispatched(AWTEvent e) {
            System.out.println(e.paramString()+"-"+e.getSource());
        }
    }, eventMask);

这是一个全局事件侦听器。
从中获取源代码和按钮 AWTEvent 做你想做的事。

相关问题