我正在使用this来自 Sedgewick 和 Wayne 的类(class),我需要在标准绘图窗口按下鼠标时获取鼠标单击的坐标。这个类有一个 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,但没有成功。我做错了什么?首先,我尝试过使用 mousePressed 来获取点,但我无法使用它来获取两点。
谢谢!
最佳答案
打印值后,您必须将 mouseClicked
标志设置为 false
while (true) {
if (StdDraw.mouseClicked()) {
System.out.println("hello");
StdDraw.mouseClicked=false;
}
}
关于java - 单击鼠标即可获取坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31060326/