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

标签 java

代码:

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。

阅读tutorial on swing and concurrency .

关于java - 为什么我的 JLabel 动画不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26204915/

相关文章:

java - BufferedInputStream 到 ByteArrayOutputStream 非常慢

java - OAuth 2 是保护无需社交登录的简单 Web 应用程序的方法吗?

java - 我应该如何处理代码中的 item 'type' 字符串,以便它们在应用程序之间保持一致?

java - 序列化后将格式应用于 SnakeYaml

java - G1 GC 是否有最大区域大小或最大区域数量?

java - 使用双显示器(扩展屏幕)时,应用程序 UI 出现在错误的屏幕上

java - 并行流 "know"如何使用封闭的 ForkJoinPool?

java - Wii 平衡板 java 示例

Java 正则表达式未按预期工作

Java大十进制数格式异常