java - 将动画 GIF 添加到 swing 标签

标签 java swing animation jframe jlabel

public void run(){
        Icon reel = common.ResourcesToAccess.reel;
        JLabel label = new JLabel(reel);
        JFrame frame = new JFrame();
        frame.setUndecorated(true);
        frame.getContentPane().add(label);
        frame.setSize(reel.getIconWidth(),reel.getIconHeight());
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

        try{
            sleep(2*1000);
        }catch(InterruptedException e){

        }
        frame.dispose();
    }  

我尝试输入 reel.setImageObserver(label); 但 Eclipse 将该语句标记为错误。为什么?
我还能做些什么来显示动画?



更新:新代码:

@Override
    public void run(){
        JFrame f = new JFrame();
        ImageIcon reel = (ImageIcon) common.ResourcesToAccess.reel;
        JLabel label = new JLabel(reel);
        reel.setImageObserver(label);
        f.getContentPane().add(label);
        f.setUndecorated(true);
        f.setSize(300, 300);
        f.setVisible(true);
    }  

虽然我可以在这里设置 ImageObserver,但 GIF 仍然没有动画

杂项:

我正在使用的 GIF 可以在这里找到:
http://bestanimations.com/Electronics/Video/Video.html
它是右边电视上方的那个。旋转卷轴。

最佳答案

通过在 EDT 中 hibernate 2 秒,您可以阻止它执行其工作(例如重新绘制 GUI 和显示动画 gif)。删除对 Thread.sleep() 的调用。

如果您希望框架在 2 秒后自行关闭,请使用 javax.swing.Timer 安排在 2 秒后关闭。

关于java - 将动画 GIF 添加到 swing 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14051325/

相关文章:

java - JButton悬停效果动画。通过鼠标监听器更改不透明度

java - 将 Jlist 添加到 JScrollPane

java - NetBean GUI 构建器中的 JSplitPane

javascript - vue js table 加新行时类似Stack Overflow的高亮效果

java - 包装责任链功能是否比直接将其放在类中更好?

java - JFrame 永远不会被垃圾回收

javascript - 使用 Web 动画创建右滑和淡出单实例动画

c# - Java 与 .Net 中的对象生命周期

java - 基于正则表达式从pdf文件中提取文本?

Java JNI “symbol lookup error” 当依赖共享库包含符号