Java 从Jlabel获取ImageIcon绝对路径
通过使用:Java 从Jlabel获取ImageIcon绝对路径,java,jlabel,imageicon,absolute-path,Java,Jlabel,Imageicon,Absolute Path,通过使用: jLabel1.getIcon().toString() 它只返回对对象“javax.swing”的引用。ImageIcon@2982ccce” 不是绝对路径,那么如何返回该图标的绝对路径 例如:C:/File/imageicon.jpgtoString()总是以字符串格式返回对象。在不使用toString()的情况下尝试它,例如:jLabel1.getIcon()无法完成。图像和图标没有用于此目的的API,通常可以在文件系统之外的上下文中使用。您不能,因为图标和文件是不相关的。你可
jLabel1.getIcon().toString()代码>
它只返回对对象“javax.swing”的引用。ImageIcon@2982ccce
”
不是绝对路径,那么如何返回该图标的绝对路径
例如:C:/File/imageicon.jpg
toString()总是以字符串格式返回对象。在不使用toString()的情况下尝试它,例如:jLabel1.getIcon()无法完成。图像和图标没有用于此目的的API,通常可以在文件系统之外的上下文中使用。您不能,因为图标和文件是不相关的。你可以通过读取一个文件来创建一个图标,但你也可以通过其他几种方式(从jar资源、套接字、内存中的字节数组等)来创建一个图标@arpitparana Yea我会尝试的谢谢@谢谢你!请编辑您的答案,包括一些关于代码如何回答问题的文本。也许,添加一个示例及其输出。另外,请考虑重新格式化你的代码。OP说<代码> toStrug()/代码>结果是“javax .Snand”。ImageIcon@2982ccce"; 你说toString()
会产生一个文件路径,现在怎么说对了?好吧,你们两个都是,但你们没有解释代码中的差异以及为什么调用的toString()
行为不同。谢谢。。我在那件事上犯了一些错误现在我改正了@Yannis@Tom我对此一无所知。。我是一名实习生。。请试一试。我猜您也在使用ImageIcon
。如果没有,那么你应该补充你的问题。如果您也在使用图像图标
,请检查您如何初始化该图标,并尝试了解您的初始化风格为何允许它打印所用文件的路径。然后你就会知道你的代码和OpsOne之间的区别,这也应该在答案中解释。
JLabel jLabel1 = new JLabel();
jLabel1.setIcon(new ImageIcon(getClass().getResource("/lk/edu/ijse/examsimulator/img/Hand With Pen_36px.png")));
if (jLabel1.getIcon() != null) {
Icon iconPath = jLabel1.getIcon();
System.out.println(iconPath.toString());
/* print
* file:/E:/Quick%20access/Documents/NetBeansProjects/ExamSimulator/ExmClientAdmin/build/classes/lk/edu/ijse/examsimulator/img/Hand%20With%20Pen_36px.png
*/
String absolutePath = iconPath.toString().replaceFirst("file:/", "");
absolutePath = absolutePath.replaceAll("%20", " ");
System.out.println(absolutePath);
/* print
*
* E:/Quick access/Documents/NetBeansProjects/ExamSimulator/ExmClientAdmin/build/classes/lk/edu/ijse/examsimulator/img/Hand With Pen_36px.png
*
* it's my image absolute path */
}