代码:
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) {
}
此代码的工作原理与:
Thread.sleep(900);
ImageIcon ico6=new
ImageIcon("src/on1.png");
jLabel42.setIcon(ico6);
OffOn1=1;
我的问题是为什么?!!!
最佳答案
我们又来了。
应该绘制标签的线程是执行这些代码行的线程:事件调度线程。由于它正忙于执行这些代码行,因此在执行完它们之前它无法绘制任何内容。
您应该使用单独的线程来 hibernate 并定期更改标签的图标。但请确保每个 swing 组件始终可以从 EDT 访问。最简单的方法是使用 Swing Timer。
关于java - 为什么我的 JLabel 动画不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26204915/