Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Jlabel获取ImageIcon绝对路径_Java_Jlabel_Imageicon_Absolute Path - Fatal编程技术网

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 */
    }