使用gif文件创建ImageIcon,由于是applet,无法读取本地文件,所以想把gif文件嵌入到java源代码中,看到ImageIcon有个构造函数:
public ImageIcon(byte[] imageData)
是从byte[] imageData中读取gif文件的内容,但这个byte[] imageData如何创建呢?文档中没有详细说,有人知道吗?
谢谢!

解决方案 »

  1.   

    URL u=this.getClass().getClassLoader().getResource("test.gif");
    ImageIcon image=new ImageIcon(u);
      

  2.   

    能否不用URL,而直接在代码中嵌入byte[],比如
    byte[] imageData = {XXX,XXX,XXX...}
    然后
    ImageIcon ii = new ImageIcon(imageData);
    得到{XXX,XXX,XXX...} 呢? 
    谢谢!
      

  3.   

    import java.applet.*; 
    import java.awt.*; 
    import java.io.*; 
    public class ResourceDemoApplet extends Applet { 
        Image m_image; 
        public void init() { 
            try { 
                InputStream in = getClass().getResourceAsStream("my.gif"); 
                if (in == null) { 
                    System.err.println("Image not found."); 
                    return; 
                } 
                byte[] buffer = new byte[in.available()]; 
                in.read(buffer); 
                m_image = Toolkit.getDefaultToolkit().createImage(buffer); 
            } 
            catch (java.io.IOException e) { 
                System.err.println("Unable to read image."); 
                e.printStackTrace(); 
            } 
            add(new JLabel(new ImageIcon(m_image))); 
        } }