添加动画GIF到摇摆标签

Lit*_*ild 3 java animation swing jlabel jframe

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();
    }  
Run Code Online (Sandbox Code Playgroud)

我尝试键入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);
    }  
Run Code Online (Sandbox Code Playgroud)

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

其他:

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

JB *_*zet 7

通过在EDT中休眠2秒,可以防止它完成工作(比如重新绘制GUI并显示动画gif).删除呼叫Thread.sleep().

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

  • +1 Swing计时器是迄今为止最好的解决方案 (3认同)