【发布时间】:2012-05-24 05:42:33
【问题描述】:
我正在尝试在 JLabel 中加载动画 GIF。
虽然这有效:
URL urlsd;
try {
urlsd = new URL("http://pscode.org/media/starzoom-thumb.gif");
ImageIcon imageIcon = new ImageIcon(urlsd);
JLabel progress = new JLabel(imageIcon);
progress.setBounds(5, 20, 66, 66);
contentPane.add(progress);
} catch (MalformedURLException e) {
e.printStackTrace();
}
另一方面,这不会,而且我不想从 URL 获取 GIF,因为我已经有了 GIF。加载结果仅显示 GIF 的第一帧:
try {
ImageIcon imageIcon = new ImageIcon(ImageIO.read(ClassLoader.getSystemResourceAsStream("res/images/progress_indicator.gif")));
JLabel progress = new JLabel(imageIcon);
imageIcon.setImageObserver(progress);
progress.setBounds(5, 20, 66, 66);
contentPane.add(progress);
} catch (MalformedURLException e) {
e.printStackTrace();
}
我想这一定是有原因的,但我找不到。
谢谢! 亚历克斯
【问题讨论】:
-
ClassLoader真的不是访问方式,
Application Resources,试试这个链接,希望对你有帮助,HOW TO LOAD IMAGES INTO YOUR PROJECT -
为什么不用 ClassLoader,正如 Java Doc 中所述,它指出“所有类加载器都会首先搜索资源作为系统资源,其方式类似于搜索类文件”跨度>
-
@AlejandroVK :有关工作示例,请参阅thread
标签: java swing jlabel animated-gif