我如何收听鼠标滚轮按?

时间:2012-01-05 13:06:59

标签: java swing mousewheel

有没有办法监听鼠标滚轮按下(不移动滚轮,只需按下滚轮)?

我已经检查了MouseWheelListener API,但鼠标滚轮按下没有任何内容,只是车轮移动。

2 个答案:

答案 0 :(得分:9)

鼠标滚轮按钮通常是鼠标按钮2:

public void mouseClicked(MouseEvent evt) {

    if ((evt.getModifiers() & InputEvent.BUTTON2_MASK) != 0) {
      System.out.println("middle" + (evt.getPoint()));
    }

 }

甚至更好:

SwingUtilities.isMiddleMouseButton(MouseEvent anEvent)

答案 1 :(得分:1)

通过MouseListener界面报告鼠标滚轮。

使用mousePressedmouseReleased事件并检查MouseEvent.getButton()方法以返回按下或释放的按钮编号。

您还可以使用mouseClicked事件检测点击次数,但我发现鼠标点击的内置条件太窄。但是,在这种情况下,可以单击多个鼠标按钮,您可以使用MouseEvent.getModifiers()获取按下按钮的位掩码。