我正在尝试创建一个简单的动画,其中一系列气泡围绕中心点旋转。我有一个动画版本,其中气泡在开始旋转之前从中心点展开,效果很好,但是只要我单击其中一个图像(触发动画),屏幕就会冻结片刻,然后出现气泡在他们的最终位置,而不是显示他们所做的每一步。
到目前为止,我所拥有的是:
while(bubble[1].getDegree() != 270)
{
long time = System.currentTimeMillis();
//the below if statement contains the function calls for
//the rotating bubble animations.
next();
draw();
// delay for each frame - time it took for one frame
time = (1000 / fps) - (System.currentTimeMillis() - time);
if (time > 0)
{
try
{
Thread.sleep(time);
}
catch(Exception e){}
}
}
public void draw()
{
for(int i = 1; i < bubble.length; i++)
{
iconLabel[i].setLocation(bubble[i].getX(), bubble[i].getY());
textLabel[i].setLocation((bubble[i].getX()+10),(bubble[i].getY()+10));
}
}
为清楚起见,“next()”方法只是将气泡的位置更改到适当的位置,我知道这可以正常工作,因为我之前已经做过动画,但是一旦我将动画实现到 JLabels,它就停止工作了。
任何帮助,将不胜感激。