如何检查Swing中是否按下了哪个鼠标按钮

时间:2014-03-27 19:53:26

标签: java swing mouse mouse-listeners

如何检查当前是否按下任何鼠标按钮,如果是,是哪一个?

问题是我需要在MouseListener.mouseEntered()中使用这种信息。我检查了MouseEvent,但我找不到可以帮助我的方法。

getButton()方法似乎只返回值,如果按钮有变化'状态。

有没有办法找到这个,而不用手动跟踪这个MouseListener.mousePressed()/mouseReleased()方法。

3 个答案:

答案 0 :(得分:8)

  

如何检查当前是否按下任何鼠标按钮,如果是,是哪一个?

据推测,您希望根据按下的按钮调用特定代码,以便执行以下操作:

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

答案 1 :(得分:3)

您可以首先查看How to write a Mouse ListenerJavaDocs for MouseEventgetButton方法。

但是,有一些需要考虑的跨平台考虑因素,SwingUtilities.isLeftMouseButton和等效方法......

答案 2 :(得分:1)

这将解决您的问题

    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);

这是Global Event Listeners

AWTEvent获取来源和按钮,并执行您想要执行的任何操作。