我正在使用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来获得观点,但我无法用它来获得两分。
谢谢!
答案 0 :(得分:1)
打印值
后,您必须将mouseClicked
标志设置为false
while (true) {
if (StdDraw.mouseClicked()) {
System.out.println("hello");
StdDraw.mouseClicked=false;
}
}