java - 处理过程中 GIF 中的动画不起作用

标签 java swing

我使用以下代码显示 GIF 动画:

    ImageIcon ii = new ImageIcon(getClass().getResource("resources/wait_animated.gif"));
            JLabel l2 = new JLabel("Please Wait...",ii, SwingConstants.CENTER);
        ii.setImageObserver(l2);
        d.setIconImage(null);
        JDesktopPane dp=new JDesktopPane();
        dp.setPreferredSize(new Dimension(300,50));

        l2.setLocation(dp.getX(),dp.getY());
        l2.setPreferredSize(new Dimension(300,50));

        d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        d.setTitle("Wait dialog");

        d.add(l2);
        JDialog.setDefaultLookAndFeelDecorated(true);
        d.pack();
        d.setPreferredSize(new Dimension(50,50));
        d.setLocation(300,300);
        d.setAlwaysOnTop(true);
        d.setVisible(true);

GIF 中的动画显示得很好。但是,当此后需要进行一些处理时(我在数据库更新正在进行时使用等待对话框);动画挂起。有人可以建议一种简单有效的方法来实现这一目标吗? 对我来说越简单越好。 提前致谢

最佳答案

GIF的动画是由Swing事件线程完成的。我想您不会自己生成任何线程,因此当您更新数据库时,它也是由事件线程完成的。因此,事件线程正忙于处理数据库,无法同时更新动画。

将数据库处理(和其他繁重的任务)移至单独的线程中。一般来说,所有可能需要相当长的时间的处理都应该在单独的线程中完成。

关于java - 处理过程中 GIF 中的动画不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5450175/

相关文章:

java - 需要建议使用 Java 创建交互式 GUI

java - Activity 流 - 在应用程序加载时在面板中生成 X 数量的对象

java - JList:上一个选择的项目

java - 如何在 Swing 中制作下拉菜单?

java - 有没有更好的方法来转义这个字符串?

java - 如何在liferay中使用集合

java - 在 AWT 组件上添加透明 JPanel 进行绘制

java - 了解 Java GUI 开发、管理和设置 JComponents

java - 您已在存储库中定义查询方法,但未定义任何查询查找策略。 Spring

java - 如何在selenium的testng中静态打开浏览器(所有测试都在一个浏览器中)