问题如题,代码如下:
Icon icLeft = new ImageIcon("Left.gif");
JButton btnLeft = new JButton(icLeft);
运行起来后,并没有发现按钮上有对应的gif显示。如果载入gif时写完整绝对路径就行,不知道为什么。并且gif也载入到Eclipse工程中了。
Icon icLeft = new ImageIcon("Left.gif");
JButton btnLeft = new JButton(icLeft);
运行起来后,并没有发现按钮上有对应的gif显示。如果载入gif时写完整绝对路径就行,不知道为什么。并且gif也载入到Eclipse工程中了。
eclipse默认编译是将源文件编译后放在./WEB-INF/classes目录下,所以如果你的图片文件是跟.java文件放在统一目录下,则eclipse回自动将该文件放在.java对应的包目录中,其绝对路径是{上下文跟}/WEB-INF/classes/{包路径}/{文件名}。如果写相对路径,请根据该绝对路径名推测。另外既然跟.java文件放在统一目录里面,则说明你准备按照java类的形式访问资源文件,最好再重载一个ImageIcon类的构造方法,其接受参数为类路径,这样你就可以使用这样的形式
Icon icLeft = new ImageIcon("{包路径}/{文件名}"),即按照java类路径查找资源文件。
不过区别不大,把上面的绝对路径{上下文跟}/WEB-INF/classes/{包路径}/{文件名}改成./classes/{包路径}/{文件名}就可以了。
{上下文跟}/WEB-INF/classes/{包路径}/{文件名}
改成
./classes/{包路径}/{文件名}
Left.gif要和当前代码在同一个路径下。
我想请教如何不以发布的方式(jar),在Eclipse中直接运行就可以的方法代码。
如果这样写,应该把图片放在工程根目录下。Icon icLeft = new ImageIcon("/Left.gif");
如果这样写,则应该把图片和当前类的.class文件放在同目录下。
文件放在工程根目录下,Icon icLeft = new ImageIcon("Left.jpg");