有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java获取鼠标单击的坐标

我正在使用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");
        }
    }
}

}

它一直在打印hello(这意味着mouseClicked正在返回true。我如何才能使其停止?我尝试在发布的事件上设置mouseClicked=false,但没有成功。我做错了什么?首先,我尝试使用MouseCpressed获得分数,但无法使用它获得两分

谢谢


共 (1) 个答案

  1. # 1 楼答案

    打印值后,必须将mouseClicked标志设置为false

    while (true) {
            if (StdDraw.mouseClicked()) {
                System.out.println("hello");
                StdDraw.mouseClicked=false;
            }
        }