问题如题,代码如下:
Icon icLeft = new ImageIcon("Left.gif");
JButton btnLeft = new JButton(icLeft);
运行起来后,并没有发现按钮上有对应的gif显示。如果载入gif时写完整绝对路径就行,不知道为什么。并且gif也载入到Eclipse工程中了。

解决方案 »

  1.   

    放到.class文件下呢?上次有人问道类似的问题,一个好的方法就是把所有用到的图片打到一个包里,然后把这个包再倒入。
      

  2.   

    应该是要放到classpath里和java文件没什么关系
      

  3.   

    是的,应该是编译过的class文件一个目录。
      

  4.   

    发布以后是没有.java文件的,所有的.java文件都被编译成了.class文件,根据你的构建情况放在jar包中或者./WEB-INF/classes/{包路径}/里。
    eclipse默认编译是将源文件编译后放在./WEB-INF/classes目录下,所以如果你的图片文件是跟.java文件放在统一目录下,则eclipse回自动将该文件放在.java对应的包目录中,其绝对路径是{上下文跟}/WEB-INF/classes/{包路径}/{文件名}。如果写相对路径,请根据该绝对路径名推测。另外既然跟.java文件放在统一目录里面,则说明你准备按照java类的形式访问资源文件,最好再重载一个ImageIcon类的构造方法,其接受参数为类路径,这样你就可以使用这样的形式
    Icon icLeft = new ImageIcon("{包路径}/{文件名}"),即按照java类路径查找资源文件。
      

  5.   

    晕,我进的是java大区,想当然的当成J2EE区了,没注意这里是J2SE区。
    不过区别不大,把上面的绝对路径{上下文跟}/WEB-INF/classes/{包路径}/{文件名}改成./classes/{包路径}/{文件名}就可以了。
      

  6.   

    排一下版,
    {上下文跟}/WEB-INF/classes/{包路径}/{文件名}
    改成
    ./classes/{包路径}/{文件名}
      

  7.   

    Icon icLeft = new ImageIcon("/Left.gif");
    Left.gif要和当前代码在同一个路径下。
      

  8.   

    各位,还是没成功。我当前不是做的工程,只是根据书上的例子在Eclipse里做了个包和类,然后在类中写代码。gif文件在源代码文件夹和class文件夹中都有。
    我想请教如何不以发布的方式(jar),在Eclipse中直接运行就可以的方法代码。
      

  9.   

    看看class路径下有这个图片吗?
      

  10.   

    刚学,不太懂class路径是什么意思。gif文件与编译后的字节码文件*.class在一个目录中。
      

  11.   

    Icon icLeft = new ImageIcon("Left.gif"); 
    如果这样写,应该把图片放在工程根目录下。Icon icLeft = new ImageIcon("/Left.gif"); 
    如果这样写,则应该把图片和当前类的.class文件放在同目录下。
      

  12.   

    你的文件格式有问题,这里好像只能用jpg。
    文件放在工程根目录下,Icon icLeft = new ImageIcon("Left.jpg");