在Java中按下鼠标时捕获鼠标移动

时间:2013-11-15 13:33:08

标签: java mouse listener

我试图在按下鼠标按钮的同时获取鼠标位置,但它不起作用。 我正在扩展MouseAdapter并且正如Javadoc所述,当鼠标光标移动到组件上但没有按下按钮时,调用mouseMove()

这是我创建的一个示例类,用于向您展示我的问题:

public class TestMouse extends MouseAdapter{

    int x,y;
    boolean pressed;

    public void mousePressed(MouseEvent e){
        pressed = true;
    }

    public void mouseReleased(MouseEvent e){
        pressed = false;
    }

    /*
    Invoked when the mouse is not pressed only.
    */
    public void mouseMoved(MouseEvent e){
        x = e.getX();
        y = e.getY();
    }   


    /*
    I want something like that.
    */
    public void mousePressedAndMoved(MouseEvent e){
        ....
    }

}

1 个答案:

答案 0 :(得分:3)

这是MouseAdapter的问题,因为它是abstract class而不是interfaceMouseMotionListener是您需要的那个),它为所有可能的实现提供了空实现事件只是为了避免你被迫全部覆盖它们,这也意味着如果你不阅读文档,你可能会错过其中的一些事件。

如果你仔细看documentation,你会看到你有

public void mouseDragged(MouseEvent e)

您可以覆盖以完全听取您的需求。