Java 为什么我的JLabel动画不起作用?

Java 为什么我的JLabel动画不起作用?,java,Java,代码: 此代码的工作原理与: try { ImageIcon ico2=new ImageIcon("src/on1.png"); jLabel42.setIcon(ico2); Thread.sleep(100); ImageIcon ico3=new ImageIcon("src/on2.png"); jLabel42.setIcon

代码:

此代码的工作原理与:

try {
                ImageIcon ico2=new ImageIcon("src/on1.png");
                jLabel42.setIcon(ico2);
                Thread.sleep(100);
                ImageIcon ico3=new ImageIcon("src/on2.png");
                jLabel42.setIcon(ico3);
                Thread.sleep(100);
                ImageIcon ico4=new ImageIcon("src/on3.png");
                jLabel42.setIcon(ico4);
                Thread.sleep(100);
                ImageIcon ico5=new ImageIcon("src/on4.png");
                jLabel42.setIcon(ico5);
                Thread.sleep(100);
                ImageIcon ico7=new ImageIcon("src/on5.png");
                jLabel42.setIcon(ico7);
                Thread.sleep(100);
                ImageIcon ico8=new ImageIcon("src/on6.png");
                jLabel42.setIcon(ico8);
                Thread.sleep(100);
                ImageIcon ico9=new ImageIcon("src/on7.png");
                jLabel42.setIcon(ico9);
                Thread.sleep(100);
                ImageIcon ico10=new ImageIcon("src/on8.png");
                jLabel42.setIcon(ico10);
                Thread.sleep(100);
                ImageIcon ico6=new ImageIcon("src/on1.png");
                jLabel42.setIcon(ico6);
                OffOn1=1;
            } catch (InterruptedException ex) {

            }
我的问题是为什么

我们又来了

应该绘制标签的线程是执行以下代码行的线程:事件调度线程。因为它忙于执行这些代码行,所以在完成执行之前无法绘制任何内容

您应该使用单独的线程睡眠,并定期更改标签的图标。但是,请确保始终从EDT访问每个swing组件。最简单的方法是使用摆动计时器


阅读。

问题的标题是“为什么我的JLabel动画不起作用?”-那么它是否真的起作用了?如果在EDT中运行此功能,GUI将在方法运行时锁定,并且在完成之前不会重新绘制标签。
Thread.sleep(900);
ImageIcon ico6=new 
ImageIcon("src/on1.png");
jLabel42.setIcon(ico6);
OffOn1=1;