计时器循环不断循环一系列映像[Java NetBeans]

计时器循环不断循环一系列映像[Java NetBeans],java,swing,netbeans,timer,Java,Swing,Netbeans,Timer,我试图使用JavaSwing定时器创建一个循环,不断循环一组图像(i1、i2、i3…,其中n是图像的总数) 每个图像的大小完全相同,必须显示在标签上(例如l1) 显示的每个图像之间必须有10秒的延迟 如果我不使用Java TumbleItem applet>的话,你知道我如何做到这一点吗?对于像我这样的简单实现来说,这似乎太复杂了。(在网上店面申请学校时展示特价海报) 我愿意以任何其他方式实现这一目标 非常感谢您的帮助。提前谢谢 我正在尝试使用JavaSwing定时器创建一个循环,以不断循环一组

我试图使用JavaSwing定时器创建一个循环,不断循环一组图像(i1、i2、i3…,其中n是图像的总数)

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

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

如果我不使用Java TumbleItem applet>的话,你知道我如何做到这一点吗?对于像我这样的简单实现来说,这似乎太复杂了。(在网上店面申请学校时展示特价海报)

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

非常感谢您的帮助。提前谢谢

我正在尝试使用JavaSwing定时器创建一个循环,以不断循环一组图像

当你使用定时器时,你不使用循环。当计时器启动时,您只需更改图像。所以,您需要在某个地方保存一个要显示的图像列表和当前显示图像的索引

不使用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
}

-1如果那样的逻辑不是一个好的解决方案。如果你有100张图片呢?另外,您不应该使用TimerTask。您应该使用Swing计时器,因为所有更新到Swing组件的操作都应该在一个事件调度线程中完成,Swing计时器将在EDT上触发事件。他说他只需要3个。实际上,OP说他需要“n”个图像。但即使是3,这仍然不是解决嵌套if/else语句问题的方法。谢谢!我一定要试试这个。谢谢camickr。我打算尝试这两种建议。我的代码将尽可能简化,因此我认为TumbleItem(已修改)将运行良好。我正在尝试运行小程序,但收到错误消息:“无法从每个图像的文件:images/tumble/tx.gif中读取流”。