检索ImageIcon的路径

时间:2011-08-12 19:13:08

标签: java path

是否可以获取创建ImageIcon的文件的位置?

内部ImageIcon有一个位置的临时私有URL,在调试时会显示其路径,但我无法弄清楚如何访问它。有什么建议吗?

这就是我的意思,

public String getPath(ImageIcon icon){
    return ????;
}

2 个答案:

答案 0 :(得分:4)

您可以使用反射来访问私有字段,但如果ImageIcon未使用URL创建,则该字段将为null。如果您自己创建ImageIcon,则可以在地图中跟踪URL

ImageIcon icon = ...
Class<? extends ImageIcon> clazz = icon.getClass();
Field urlField = clazz.getDeclaredField("location");
urlField.setAccessible(true);

URL location = (URL) urlField.get(icon);

还值得考虑的是,字段名称可能会在将来的版本中发生变化,这可能会产生异常。

答案 1 :(得分:2)

您是否尝试过getDescription()

我之所以这么说,是因为在public ImageIcon(String filename)的文档中,它会在“另请参阅”下列出getDescription()

注意:请参阅Jeffrey的评论。