我一直在尝试加载位于我的images文件夹中的image.png文件:
在eclipse中,我在我的src文件夹中创建了一个名为images的文件夹并将图像放在那里,所以它应该是我的类路径的一部分。
然而,当我尝试使用此图像时,它不起作用:
我试过这些:
Image image;
String craft = "myApp/src/images/image.png";
ImageIcon ii = new ImageIcon(craft);
image = ii.getImage();
Image image;
String craft = "myApp/src/images/image.png";
ImageIcon ii = new ImageIcon(this.getClass().getResource(craft));
image = ii.getImage();
String craft的各种变体:
"images/image.png", "/images/image.png", "/myApp/src/images/image.png"
答案 0 :(得分:2)
如果您有以下图片:
src/images/foo.png
并使用此代码:
ImageIcon ii = new ImageIcon("images/foo.png");
Image image = ii.getImage();
System.out.println(image != null);
输出将是:
true
...即Image
不是null
...
...如果你的类路径是eclipse在创建项目时提供的默认构建路径(注意:应该与Netbeans等相同)。
如果您使用的是不同的构建脚本,无论是Ant还是Maven,您可能需要更改路径。如果它是一个Web应用程序,你肯定会。
附加说明
答案 1 :(得分:0)
每当您尝试在类路径中加载资源时,都需要指定正确的相对路径。如果你的类路径中的images文件夹与类的文件夹相同,那么你必须按如下方式加载它
String craft = "images/image.png";
ImageIcon ii = new ImageIcon(this.getClass().getResource(craft));
或者如果你在classpath中的images文件夹中有所有文件,你也可以直接指定文件名
String craft = "image.png";
ImageIcon ii = new ImageIcon(craft);
所以,我确信你提供的路径是错误的,这就是资源没有被加载的原因
答案 2 :(得分:0)
试试这个
String craft = "images/image.png";
ImageIcon ii = new ImageIcon(craft);
文件结构
ProjectRoot
images
imgage.png
src
bin