哪位高手可以给我解释一下下面这段代码,我要在Applet中显示
画一个图片(paint方法没有列在这里),我已经将图片放在了
与TextureDemo同目录下的image文件夹下,可就是画不出来,
代码Image img = new ImageIcon(url).getImage()好像并没有读入图片,
用debug查看 img.getWidth()返回值是-1,小弟不明白,是图片资源的路径放错了
还是怎么回事,望高手指点,感谢!感谢!public class TextureDemo extends JApplet {
  private BufferedImage bImage;  public void init(){    // 获得图片资源
    URL url=null;
    try {
      url = new URL(getCodeBase(),"images\\Winter.jpg");
    } catch(MalformedURLException e) {
        String msg = "Error loading image duke.gif";
        System.err.println(msg);
        showStatus(msg);
        System.exit(0);
    }
 
    Image img = new ImageIcon(url).getImage();
    // 建立一个和image大小相同的BufferedImage
    // 把图片放在上面
    bImage = new BufferedImage(img.getWidth(null),img.getHeight(null),
                   BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = bImage.createGraphics();
    g2.drawImage(img,null,null);
  }}

解决方案 »

  1.   

    感觉是路径不对 找不到图片资源 难道是程序没部署到服务器上 根据URL找不到图片?
      

  2.   

    在图片路径前  加个SRC看看
    原先遇到过
      

  3.   

    是路径的问题,image文件夹应该和生成的java.policy.applet文件放在同一个目录下
    而不是和编译后的TextureDemo.class放在同一个目录下。我到是有一个问题,这里没有用到“IO”是怎么从磁盘读入文件的??不知哪位知道说出来学习一下。
      

  4.   

    看API说明:http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/javax/swing/ImageIcon.html
    其中第一段如下:一个 Icon 接口的实现,它根据 Image 绘制 Icon。可使用 MediaTracker 预载根据 URL、文件名或字节数组创建的图像,以监视该图像的加载状态。 
    这段话告诉你了要用MediaTracker去监视加载是否完成,因为加载时异步的,它是用了另一个线程去加载图像的。你要用MediaTracker去同步。自己去找怎么使用这个类来同步。
      

  5.   

    说错了,晕。呵呵,ImageIcon内部就是用MediaTracker加载的,不知道你的是什么问题。
      

  6.   

    images\\Winter.jpg是不是这个不用'\'而是用'/'在url路径里。