0

我正在尝试加载图像文件。

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"));
  1. 我应该将 RCar.gif 放在 Eclipse 项目的 src 或 bin 文件夹中吗?
  2. 如果没有明确的路径,我将如何引用它?(我使用的是 Mac。我相信它应该类似于 ~/RCar.gif,但无法在线找到正确的语法。

谢谢!

4

4 回答 4

3

如果我没记错的话,Eclipse 要求将所有资源都放在资源目录中。当您导出它时,这些将自动与您的应用程序捆绑在一起。

在运行时,您只需使用Class#getResource("/path/to/your/resource")where 路径是“资源”文件夹中的位置

于 2013-07-01T06:31:21.250 回答
3

如果您想使用相对路径,它们将相对于项目的根目录,或者在部署项目时,jar 文件所在的目录。您可以将src/RCar.gif其用作文件名。

如果您为资源创建一个单独的文件夹会更好,然后使用new File("res/RCar.gif");另一个选项将它们放在 src 文件夹中并使用类加载器对其进行寻址。

于 2013-07-01T06:31:32.797 回答
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. 当然,这也是图标在运行时应该出现的地方。

高温高压

于 2013-07-01T07:12:24.603 回答
1

是的...它采用相对路径。

public static final String FILE_PATH = "src/test/resources/car.png";

于 2014-10-10T04:47:32.110 回答