我正在尝试加载图片文件。
File imageCheck = new File("Users/me/Documents/workspace/ChineseChess/src/RCar.gif");
if (imageCheck.exists())
System.out.println("Image file found!");
else
System.out.println("Image file not found! :(");
button.setIcon(new ImageIcon("Users/me/Documents/workspace/ChineseChess/src/RCar.gif"));
谢谢!
答案 0 :(得分:3)
如果我没记错,Eclipse需要将所有资源放在资源目录中。当您导出应用程序时,它们将自动与您的应用程序捆绑在一起。
在运行时,您只需使用Class#getResource("/path/to/your/resource")
,其中路径是“资源”文件夹中的位置
答案 1 :(得分:3)
当它在运行时所属的类的资源文件夹中时,您可以非常轻松地加载图标。 见http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResource%28java.lang.String%29
在课程your.packagename.YourClassName
中,您可以写下以下内容:
String folderName = YourClassName.class.getName().replace('.', '/' );
String urlString = "/"+folderName+"/RCar.gif";
URL fileUri = YourClassName.class.getResource(urlString);
button.setIcon(new ImageIcon(fileUri));
urlString为/your/packagename/YourClassName/RCar.gif
。当然,这也是图标应该在运行时的位置。
HTH
答案 2 :(得分:2)
如果要使用相对路径,它们将相对于项目的根目录,或者在部署时,相对于jar文件所在的目录。您可以使用src/RCar.gif
作为文件名。
如果为资源创建一个单独的文件夹,然后使用new File("res/RCar.gif");
解决它们会更好。另一个选择是将它们放在src文件夹中并使用类加载器解决它们。
答案 3 :(得分:1)
是的......它需要相对路径。
public static final String FILE_PATH =" src / test / resources / car.png&#34 ;;