【发布时间】:2021-02-10 00:58:53
【问题描述】:
我试图在鼠标点击时开始一个小动画......这是我的代码
import acm.graphics.*;
import acm.program.*;
import java.awt.*;
import acm.util.*;
import java.awt.event.*;
public class ClickAnimation extends GraphicsProgram {
GOval ball=new GOval(50,50,50,50);
public void run() {
add(ball);
addMouseListeners();
}
public void mouseClicked(MouseEvent e) {
while(ball.getX()<getWidth()) {
ball.move(0.2,0.2);
pause(10);
}
}
}
Google 说不能在鼠标监听器中使用 while 循环...我该如何解决这个问题?
【问题讨论】:
-
请分享最少的可测试代码并进一步解释问题。
-
用while调用下一个方法。
-
如果动画(while 循环)直接放在 run 方法中,它工作得很好,但是当通过鼠标侦听器调用时,程序就会卡住。所以我想让 mouseclicked() 中的 while 循环工作..
-
我不熟悉您的库,但基本问题是处理程序需要立即返回,而不是永远等待。相反,从您的处理程序方法中触发后台作业(使用标准库中的
SwingWorker之类的东西)。 -
我的问题与stackoverflow.com/questions/20814260/… 类似,我只想知道是否可以在鼠标侦听器中构建循环。如果不能实现此目标
标签: java mouselistener