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 */
}
toString() retourne toujours objet sous forme de chaîne. Essayez-le sans toString() comme: jLabel1.getIcon() –
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
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.) –