在Java FX中定义图像的相对路径

时间:2014-12-12 15:01:00

标签: java image path javafx

我知道这已被多次询问过,我已经广泛搜索过这个可能很简单的问题的解决方案。我正在尝试在Oracle网站上关注简单的javaFX组件教程。我可以这样定义图像:

Image img = new Image("images/portal.png", 50, 50, true, true);

当图像位于“src”文件夹内的文件夹中时,这是有效的,但是当我将图像文件夹放在“src”文件夹之外时,我试图让它找到图像,如下所示:

http://puu.sh/drF7K/bbf1a047aa.png

我该如何使这项工作?我得到的只是“无效的URL或资源未找到”的错误。我试图使用绝对路径,尝试在其前面放置“..”,尝试“HS-Graph / images / portal.png”以及其中的所有内容:(谢谢!

3 个答案:

答案 0 :(得分:15)

我会回答我自己的问题,因为我确实找到了解决方法!我的解决方案是使用"文件:"指定路径时的前缀。所以:

Image img = new Image("file:images/portal.png");

当图片文件位于我的 src 文件夹之外时,效果非常好!

答案 1 :(得分:1)

我认为您遇到了问题,因为Images文件夹不在您的项目范围内。您可以考虑更改项目的结构。

例如:

->src
|-->main
    |--->java
          |-->(default package)
    |--->resources
          |-->images

然后您应该可以使用路径访问您的图像./src/main/resources/images/portal.png

答案 2 :(得分:0)

让我试着这样说吧; 如果要使用在不同目录中找到的图像,最好指定其相对路径。示例,如果我在我的ImageFile上寻找门户网站图像。我会这样做:

Image img = new Image("file:images/portal.png");