获取鼠标单击的坐标
Get coordinates of one mouse click
我正在使用 Sedgewick 和 Wayne 的 this class,我需要在标准绘图 window 上按下鼠标时从鼠标单击中获取坐标。这个 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。我怎样才能让它停止?我已经尝试在 released 事件上设置 mouseClicked=false,但是没有用。我做错了什么?首先,我试过用mousePressed来取点,但是我不能用它来取两点。
谢谢!
您必须在打印值后将 mouseClicked
标志设置为 false
while (true) {
if (StdDraw.mouseClicked()) {
System.out.println("hello");
StdDraw.mouseClicked=false;
}
}
我正在使用 Sedgewick 和 Wayne 的 this class,我需要在标准绘图 window 上按下鼠标时从鼠标单击中获取坐标。这个 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。我怎样才能让它停止?我已经尝试在 released 事件上设置 mouseClicked=false,但是没有用。我做错了什么?首先,我试过用mousePressed来取点,但是我不能用它来取两点。
谢谢!
您必须在打印值后将 mouseClicked
标志设置为 false
while (true) {
if (StdDraw.mouseClicked()) {
System.out.println("hello");
StdDraw.mouseClicked=false;
}
}