为什么老是报图片路径不对??
以前我插图片都这么插的 没有提示路径错误啊 ??
到底是什么原因??
新人求解!!!

解决方案 »

  1.   

    在根目录下新建一个resources目录、把image目录移到其下面,然后把resources目录加到Build Path。
    TankGame.class.getResource("/image/p1.jpg")
      

  2.   

    把image文件夹放到src下试试?
      

  3.   

    楼上的基本都把可行的方法说了,我刚开始也为路径问题困扰了很久,尤其是最后打成JAR包后的路径。顶一下
      

  4.   

    image1 = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/image/p1.jpg"));
    用我这方法获取图片成功了
    不过用你的TankGame.class.getResource("/image/p1.jpg")不对,这里的TankGame指的是根目录名吗?
    还有可以请教下你们一般是怎么提取图片的吗? 我觉得我们老师说的这种方法代码太长了
      

  5.   

    看错了,把包名TankGame看成类名了。
    这样用的话,到时候可以把图片也打包到jar文件里。方便了程序的分发。
      

  6.   

    一般使用 ImageIO的read方法读图。Toolkit的getImage方法是一个异步的,需要使用MediaTracker监控是否完全载入图片。
      

  7.   

    嗯 改过来之后编译有错误 类型不匹配 我直接申明成Image类型的。请问怎么申明为URL类型?
      

  8.   


    这么说ImageIO是安全同步的了?可以举个用ImageIO read()方法读图的例子吗? 新人 问题多了点 希望大哥能耐心解答下哈 万分感谢!
      

  9.   

    public static void main(String[] args){
          try{
    URL url = new URL("http://www.google.com.hk/images/srpr/logo3w.png");
            BufferedImage image = ImageIO.read(url);
            JFrame frame = new JFrame();
            JLabel label = new JLabel(new ImageIcon(image));
            frame.getContentPane().add(label);
            frame.setBounds(0, 0, 400, 300);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
          }catch(Exception e){
                    e.printStackTrace();
          }
    }
    简单的写了一下,差不多吧,反正read()貌似还有很多重载方法,自己查API就清楚了
      

  10.   

    try {
    image1=ImageIO.read(new File("/image/p01.jpg"));
    image2=ImageIO.read(new File("/image/p02.jpg"));
    image3=ImageIO.read(new File("/image/p03.jpg"));
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    为什么我这么写还是在报异常呢 ?? 什么io包都引了的 也按你的方法添加了build path;
    javax.imageio.IIOException: Can't read input file!
    at javax.imageio.ImageIO.read(Unknown Source)
    at TankGame.DrawTank.<init>(TankGame1.java:60)
    at TankGame.TankGame1.<init>(TankGame1.java:33)
    at TankGame.TankGame1.main(TankGame1.java:26)
      

  11.   

    BufferedImage bi1 = ImageIO.read(Panel.class.getResource("/image/p01.jpg"));
      

  12.   


    谢谢 可以了 不过我看网上的视屏教程 老师用的是Image image1=ImageIO.read(new File("/image/p01.jpg"));方法取图完全没问题 怎么到我这这方法就不行了呢?