获取图像路径JavaFx

时间:2014-08-04 16:16:59

标签: java image relative-path javafx-8

我想获取我的Image对象中加载的当前Image的路径名。

我有以下代码:

Image lol = new Image("fxml/images/bilhar9.png");

我想做类似的事情:

lol.getPath();

应返回“fxml / images / bilhar9.png”,我发现方法impl_getUrl()但不推荐使用。

我该怎么办?

2 个答案:

答案 0 :(得分:13)

您无法通过未弃用的API从图像中获取图像路径,因为Java 8中不存在此类API。您可以使用已弃用的API并在将来的Java版本中破坏应用程序的风险已弃用的API已删除 - 这是不可取的。您可以create a feature request使getURL()成为图像上的公共API,但是不能保证会被接受,即使它已经被接受,它也只会进入以后的Java版本。

图片不是最终的,所以我建议如下:

class LocatedImage extends Image {
    private final String url;

    public LocatedImage(String url) {
        super(url);
        this.url = url;
    }

    public String getURL() {
        return url;
    }
}

像这样创建你的形象:

Image image = new LocatedImage("fxml/images/bilhar9.png");

然后您可以通过以下方式访问网址:

String url = image instanceof LocatedImage 
        ? ((LocatedImage) image).getURL() 
        : null;

不是一个很好的解决方案,但对你的情况来说可能就足够了。

答案 1 :(得分:0)

img()。impl_getUrl()返回字符串路径