java - Thread.sleep(1000) 在 Swing 中不起作用

标签 java multithreading swing animation

我在 java swing 中有一个简单的动画程序。但它不起作用。

    try{
    for(int i = 1; i<=500; i++){    
    ImageIcon icon = new ImageIcon("img\\COVERFront.jpg");
    Image image = icon.getImage();
    Image scaled =  image.getScaledInstance(400, i, 0);
    jLabel2.setIcon(new ImageIcon(scaled));
    Thread.sleep(1000);
    }
    }
    catch(InterruptedException ie){}

我在 netbeans 7.1 中工作。

最佳答案

根据您的代码,我了解到您正在尝试通过增加(放大)图标的大小来为图标制作动画。 但是,由于 hibernate 任务是在事件分派(dispatch)线程 (EDT) 上完成的,因此它会导致 GUI 卡住。因此,不应在事件调度线程上运行诸如 Thread.sleep() 之类的所有时间任务。

考虑使用 SwingUtilitiestimer

关于java - Thread.sleep(1000) 在 Swing 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13486803/

相关文章:

java - Hibernate 5 是否仍然支持 Hibernate Spatial?

java - 如何从java中的整数中获取枚举?

c++ - 使用同一类的函数在类内创建线程

带有线程池的Java阶乘计算

java - 线程在倒计时时卡住 UI

java - 使用 JComboBox - 为什么 getSelectedItem() 可以工作并且 Java 对象?

java - Android静态库方法无法调用

java - 域最大值 - Choco 求解器

java - 何时使用 JFrame 或 JPanel

java - 无法以编程方式执行登录