在“ mouseDragged”时保存第一个鼠标位置

时间:2018-08-29 09:51:41

标签: java jpanel mouse-position

我创建了一个Java应用程序来添加/删除并在JPanel上显示随机数量的点。每次拖放都可以移动点。为了撤销最后的动作,我对这些点进行了缓冲。

我的问题:如果通过“ mouseDragged”移动了一个点,是否可以在拖动开始时保存第一个鼠标位置?我尝试了以下方法:

public void mouseDragged(MouseEvent e) {
    int x = e.getX();
    int y = e.getY();

    if (!points.isEmpty() && curPointIndex > -1) {
        if (move == false) {
            pointmove = new Point(x,y);
            move = true;
        }
    }
}

方法mouseReleased将变量move更改回false。变量pointmove应该保存第一个点,但是在拖动鼠标时,变量始终会改变。

有人可以说明为什么或我可以做些什么吗?

1 个答案:

答案 0 :(得分:0)

如Arnaud所述,您可以使用 mousePressed 来存储初始点:

        @Override
        public void mousePressed(MouseEvent e)
        {
            Point initialPoint = e.getPoint();
        }