定时器循环不断循环图像系列[Java-NetBeans]

时间:2014-05-05 03:46:47

标签: java swing netbeans timer

我正在尝试使用Java Swing Timer创建一个循环来不断循环一组图像(i1,i2,i3 ....其中n是图像总数)。

每个图像的大小完全相同,必须显示在标签上(例如,l1)。

每张图像之间必须有10秒的延迟。

不知道如何在不使用Java TumbleItem applet的情况下解决这个问题>对于像我这样的简单实现来说,这似乎太复杂了。 (在学校的在线店面应用程序上显示特价优惠海报)。

我愿意以任何其他方式实现这一目标。

非常感谢帮助。提前谢谢!

2 个答案:

答案 0 :(得分:1)

  

我尝试使用Java Swing Timer创建循环以不断循环显示一组图像

当您使用计时器时,您不会使用循环。当计时器触发时,您只需更改图像即可。因此,您需要保留要显示的图像列表和当前显示图像的索引。

  

不知道如何在不使用Java TumbleItem applet的情况下解决这个问题>对于像我这样的简单实现来说,它看起来太复杂了

这有多复杂?它显示一系列图像,接近您想要的图像。

是的,有一些额外的代码可以加载图像,并且在加载所有图像之前不会启动动画。因此,您可以轻松地简化代码,而不用担心。此外,还有一些代码可以从左到右,然后从右到左进行动画制作。您也不需要这部分代码。此外,还有用于配置动画速度的代码。你可以再次硬编码。

因此,如果您从该示例开始然后简化代码,您将获得一个简单的解决方案。试一试,然后在遇到问题时发布代码。

答案 1 :(得分:-1)

这很简单。使用这样的计时器:

    Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {

   public void run() {
     //codehere
   }

}, 0, delayInMillis)

使用可以使用整数在图像中指定。

public int image = 1;

在run()函数中,使用它在图像之间切换

if(image = 1) {
 image = 2;
} else if(image = 2) {
 image = 3;
} if(image = 3) {
 image = 0;
}

现在,无论您在何处绘制图像,请使用:

if(image == 1) {
  //draw first image
} else if(image == 2) {
  //draw second image
} else if(image == 3) {
  //draw third image
}