是否可以获取创建ImageIcon的文件的位置?检索ImageIcon的路径
内部ImageIcon有一个它的位置的临时私人URL,当调试时会显示它的路径,但我不知道如何访问它。有什么建议么?
这里就是我的意思是,
public String getPath(ImageIcon icon){
return ????;
}
是否可以获取创建ImageIcon的文件的位置?检索ImageIcon的路径
内部ImageIcon有一个它的位置的临时私人URL,当调试时会显示它的路径,但我不知道如何访问它。有什么建议么?
这里就是我的意思是,
public String getPath(ImageIcon icon){
return ????;
}
您可以使用反射来访问私有字段,但如果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);
还值得考虑的是字段名称可能会在将来的版本中更改,这可能会产生异常。
你试过getDescription()
?
我只是这么说,因为在public ImageIcon(String filename)
的文档中列出了getDescription()
在“另请参见”下。
注意:请参阅Jeffrey的评论。
*“有什么建议吗?”*如果您描述了您试图达到的目标,而不是您打算用来实现该目标的策略,那么您通常会得到更好的答案。目标是什么? –
@Andrew从我的图像图标中获取表示底层图像路径的字符串。 – Andrew
建议:展示如何创建ImageIcon,提供一些上下文。我*假设*你的意思是在一个JPanel中,但这是一个*假设*,因为你没有提供足够的细节。 –