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/