计时器循环不断循环一系列的图像[Java-NetBeans]



我试图使用Java Swing Timer创建一个循环,不断循环通过一组图像(i1, i2, i3....(n为图像总数)。

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

每幅图像显示之间必须有10秒的延迟。

不使用Java TumbleItem applet,我怎么能做到这一点?它似乎太复杂了一个简单的实现,如我的。(在网上申请学校的店面上展示特价海报)。

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

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

我试图创建一个循环使用Java Swing Timer不断循环通过一组图像

当你使用计时器时,你不需要使用循环。当Timer触发时,您只需更改图像。因此,您需要在某个地方保存要显示的图像列表和当前显示图像的索引。

如果不使用Java的TumbleItem applet,我怎么能做到这一点呢?对于像我这样简单的实现来说,这似乎太复杂了

有什么复杂的?它显示一系列的图像,这是接近你想要的。

是的,有一些额外的代码加载图像,不开始动画,直到所有的图像加载。所以你可以很容易地简化代码,不用担心这个。此外,还有一些代码可以从左到右,然后从右到左执行动画。您也不需要这部分代码。此外,还有配置动画速度的代码。你也可以硬编码。

所以如果你从那个例子开始,然后简化代码,你会得到一个简单的解决方案。尝试一下,然后在遇到问题时发布代码。

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

    Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
   public void run() {
     //codehere
   }
}, 0, delayInMillis)

Use可以使用整数来指定。

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
}

最新更新