获取一次鼠标点击的坐标

时间:2015-06-25 20:38:12

标签: java mouseevent mouselistener

我正在使用Sedgewick和Wayne的this课程,我需要在标准绘图窗口按下鼠标时获取坐标。这个类有一个方法boolean mousePressed,用于标识何时按下鼠标,我们可以从该点按下鼠标时的某个点获取坐标。我试图修改java代码,为鼠标点击做类似的事情:

public static boolean mouseClicked() {
    synchronized (mouseLock) {
        return mouseClicked;
    }
}

。 。

  public void mouseClicked(MouseEvent e) {
     synchronized (mouseLock) {
         mouseX = StdDraw.userX(e.getX());
         mouseY = StdDraw.userY(e.getY());
         mouseClicked = true;
     }
}

...

 public void mouseReleased(MouseEvent e) {
    synchronized (mouseLock) {
        mousePressed = false;
        mouseClicked = false;
    }
}

如果我运行以下程序

public class test {

public static void main(String[] args) {
    while(true){
        if (StdDraw.mouseClicked()) {
            System.out.println("hello");
        }
    }
}

}

它一直打印你好(这意味着mouseClicked返回true。如何让它停止?我已经尝试在发布的事件上设置mouseClicked = false,但是没有用。我做错了什么? ,我已尝试使用mousePressed来获得观点,但我无法用它来获得两分。

谢谢!

1 个答案:

答案 0 :(得分:1)

打印值

后,您必须将mouseClicked标志设置为false
while (true) {
        if (StdDraw.mouseClicked()) {
            System.out.println("hello");
            StdDraw.mouseClicked=false;
        }
    }