2017-03-16 5 views
0

En utilisant:ImageIcon chemin absolu d'un JLabel

jLabel1.getIcon().toString();

Il renvoie uniquement la référence à l'objet "[email protected]";

Pas le chemin absolu, alors comment puis-je retourner le chemin absolu de cette icône?

Par exemple: C:/File/imageicon.jpg

+0

toString() retourne toujours objet sous forme de chaîne. Essayez-le sans toString() comme: jLabel1.getIcon() –

+0

Ne peut pas être fait. Les images et les icônes n'ont pas d'API pour cela et peuvent généralement être utilisées dans des contextes autres que le système de fichiers. – ControlAltDel

+0

Vous ne pouvez pas, car une icône et un fichier ne sont pas liés. Vous pouvez créer une icône en lisant un fichier, mais vous pouvez également en créer un par plusieurs autres moyens (à partir d'une ressource jar, d'une socket, d'un tableau d'octets en mémoire, etc.) –

Répondre

-1
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 */ 
    } 
+0

Veuillez modifier votre réponse pour inclure du texte sur la façon dont votre code répond à la question. Peut-être, ajoutez un exemple avec sa sortie. En outre, pensez à reformater votre code. – Yannis

+0

OP dit 'toString()' aboutit à "[email protected]"; vous dites 'toString()' résultats dans un chemin de fichier, maintenant comment est-ce exact? Eh bien, vous l'êtes tous les deux, mais vous n'expliquez pas la différence dans votre code et pourquoi votre appel 'toString()' agit différemment. – Tom

+0

Merci .. J'ai eu quelques erreurs sur ce .. Maintenant, je le corrige .. @ Yannis –