gpt4 book ai didi

java - 单击鼠标停止 Java 小程序中的动画

转载 作者:行者123 更新时间:2023-12-02 08:06:31 25 4
gpt4 key购买 nike

我有以下场景:如果我在 paint() 方法中有一个 while block (例如用于模拟简单的动画,例如旋转多边形,通过多次绘制和删除来完成)图),当在小程序内单击鼠标时,有没有办法打破 while block ?

多边形的动画是在不调用 paint() 方法的情况下完成的。如果 while block 看起来像这样,是否可以这样做:

while (count<n)
{
//code that draws the polygon rotating
count++;
}

最佳答案

是的,有一种情况可以保持 while 循环。

最简单的方法是在类文件中设置一个变量 private boolean stopLoop=false 并在 while 循环中检查此属性 while (!stopLoop)

现在,MouseEvent 只需设置属性 stopLoop=true 即可完成(如果您需要帮助,这里是 How to Write a Mouse Listener

另一个解决方案是使用 @camickr 提到的 Swing Timer (请参阅其他答案)。假设您在 paint() 方法之外有一个通用的 Timer 方法。那么你就不应该在那里使用 while 循环。我建议只画一张静态图片,如果你想让你的多边形旋转,就画下一张,但用另一个角度等等。

这个想法是,将 while 循环切入 Timer 方法,这样 paint() 就会被调用很多次。如果你想阻止 poligon 绕圈,请使用 boolean 标志或停止计时器。在第一种情况下,如果正确处理 boolean 变量和鼠标事件,您可以处理多个多边形,并且每个多边形都可以启动和停止。

如果您还有其他问题,请添加更多详细信息,或者向我们展示一些最小化的代码。

关于java - 单击鼠标停止 Java 小程序中的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8087290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com