一般人都知道gif文件可以有几帧
但是如果作为一个图标加载道label上是不可能的(这个问题困扰我几天),我现在知道的方法就是
1。把这个gif拆成单独的帧,然后用动画形式来实现它,但是个人认为这样太复杂了,发现了一个可以参考的例子大家可以在j2sdk1.4.2\demo\jfc\Java2D下找到Java2Demo.jar的文件运行它,在images选项卡下左上方有个duke run的动画,那个上面跑动的duke就是个多帧的gif动画,代码见在j2sdk1.4.2\demo\jfc\Java2D\src\java2d\demos\Images下的DukeAnim.java我看的不是很明白,企图去找duke.running.gif这个图像,但是发现根本不存在,还有程序中涉及到的图片都不存在在任何地方(我搜索了的),感觉上莫名其妙的,于是我把这段程序修改成为applet,允许就看不到图片了。不知道哪位兄弟能给我点提示感谢!!!!!!!!
但是如果作为一个图标加载道label上是不可能的(这个问题困扰我几天),我现在知道的方法就是
1。把这个gif拆成单独的帧,然后用动画形式来实现它,但是个人认为这样太复杂了,发现了一个可以参考的例子大家可以在j2sdk1.4.2\demo\jfc\Java2D下找到Java2Demo.jar的文件运行它,在images选项卡下左上方有个duke run的动画,那个上面跑动的duke就是个多帧的gif动画,代码见在j2sdk1.4.2\demo\jfc\Java2D\src\java2d\demos\Images下的DukeAnim.java我看的不是很明白,企图去找duke.running.gif这个图像,但是发现根本不存在,还有程序中涉及到的图片都不存在在任何地方(我搜索了的),感觉上莫名其妙的,于是我把这段程序修改成为applet,允许就看不到图片了。不知道哪位兄弟能给我点提示感谢!!!!!!!!
解决方案 »
- JPanel的刷新问题 求高手
- "=="与equals的区别 练习时出的错误
- 关于一段多线程程序的执行顺序
- struts2 conversion.properties
- poi 问题
- 急用100分 求这道题的解答,用java也好,用c也好!
- 如何做出登陆时的那个滚动框,就是向登陆其他一些网站或登陆系统一样,输入用户名跟密码后出现的那个缓冲框!!!还有怎样使多行文本框(JTextArea)不能直接写入,就像QQ显示聊天内容的一样!!
- 请问哪里有AIX5.1下的j2sdk开发包下载
- 有没有关于繁简字转换的源代码(纯java)?
- 如何将字符串转换为数值?简单吧?(在线。。。。。)
- 不知道这种问题有没有人会???请经验丰富的java高手进来帮忙看看!
- 请大家帮我看看下面有关字符串输入的问题,谢谢!
help~~~~~~~~~~
这个我已经尝试过了
以前csdn可不是这样的哦
我的是把它做成imageicon上后,再加载到combobox上就不行了class HeadPicCombobox extends DefaultComboBoxModel {//头象列表类
public HeadPicCombobox(String[] pics) {
for(int i=0; i < pics.length; ++i) { addElement(new Object[] { new ImageIcon(pics[i]) } );
}
} public Icon getIcon(Object object) {
Object[] array = (Object[])object;
return (Icon)array[0];
}
}
其中pics[i]里面就是多帧的图片路径,路径肯定是正确的,因为其他同一目录的单帧图片都能加载
import java.awt.Component;
import java.awt.Graphics;
import java.net.URL;import javax.swing.*;public class T {
public static void main(String[] args)
{
final JComboBox comboBox = new JComboBox(); DefaultComboBoxModel model = new DefaultComboBoxModel();
ImageIcon icon1 = new MyImageIcon(T.class.getResource("1.gif"));
ImageIcon icon2 = new MyImageIcon(T.class.getResource("2.gif"));
ImageIcon icon3 = new MyImageIcon(T.class.getResource("3.gif"));
model.addElement(icon1);
model.addElement(icon2);
model.addElement(icon3);
comboBox.setModel(model); DefaultListCellRenderer renderer = new DefaultListCellRenderer() {
public Component getListCellRendererComponent(
JList list, Object value, int index, boolean isSelected,
boolean cellHasFocus)
{
if (value instanceof MyImageIcon) {
MyImageIcon icon = (MyImageIcon) value;
if (index == -1) {
icon.setComp(comboBox);
}
else {
icon.setComp(list);
}
}
return super.getListCellRendererComponent(list, value, index,
isSelected, cellHasFocus);
}
};
comboBox.setRenderer(renderer);
JFrame f = new JFrame();
f.getContentPane().add(comboBox, BorderLayout.CENTER);
f.pack();
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
static class MyImageIcon extends ImageIcon {
private Component comp = null;
public void setComp(Component comp)
{
this.comp = comp;
}
public MyImageIcon(String filename)
{
super(filename);
} public MyImageIcon(URL location)
{
super(location);
} public synchronized void paintIcon(Component c, Graphics g, int x, int y)
{
if (comp != null) {
super.paintIcon(comp, g, x, y);
}
else {
super.paintIcon(c, g, x, y);
}
}
}
}