Toolkit kit = Toolkit.getDefaultToolkit(); 
Image img = kit.getImage(getClass().getClassLoader().getResource("org\\xxx\\swing\\icon.gif"));
类和图片在同一目录下
Image img = kit.getImage("icon.gif");为什么取不到图片
kit 获取图片是从哪个路径查找?

解决方案 »

  1.   

    建议使用绝对路径,斜杠用的也很别扭,改成我这样的/andycpp/resource/icon.gif其中andycpp是根目录
      

  2.   

    不好用啊我的目录结构是
    /GUI/src/org/xxx/swing/CenteredFrame.java
    /GUI/src/org/xxx/swing/icon.gif
    代码和图片在同一目录下
    使用上面的方法
    Image img = kit.getImage(getClass().getClassLoader().getResource("/GUI/src/org/xxx/swing/icon.gif"));
    Image img = kit.getImage(getClass().getClassLoader().getResource("/org/xxx/swing/icon.gif"));
    都无法得到图片对象
      

  3.   

    Image img = kit.getImage(CenteredFrame.class.getResource("/org/xxx/swing/icon.gif"));
    这句应该是没问题的,唯一可能的错误就在于"/org/xxx/swing/icon.gif"这个路径是大小写敏感的,大小写不正确,就得不到正确的结果。检查一下你图片文件的后缀是不是大写的GIF?
      

  4.   


    Image img = kit.getImage(getClass().getClassLoader().getResource("icon.gif"));//如果类和图片在一个包的话,这样应该可以的./*
    getResource的参数
    如果开头有/的话, 会将参数当作包结构去找,也就是说你的参数一定要写成你的类开头的package 后面跟的内容(.改成/)才能够找到.如果开头没有/的话, 他会将你的类的包默认添加到参数之前
    */
      

  5.   

    囧额~  我用 URL 搞定的~Toolkit tk  = Toolkit.getDefaultToolkit();
    body[0] = tk.getImage( new URL( ClassLoader.getSystemResource(""),"picture/bodyTank/tankUp.png" ) );用System.out.println 看了下 getClass().getClassLoader().getResource("")
    得到的结果是:
    file:/D:/Backup/workbench/MyProgram/bin/