獲得的ImageIcon絕對路徑通過使用:從一個JLabel
jLabel1.getIcon().toString();
它僅返回參照對象 「[email protected]
」;
不是絕對路徑,那麼我該如何返回該圖標的絕對路徑?
例如:C:/File/imageicon.jpg
獲得的ImageIcon絕對路徑通過使用:從一個JLabel
jLabel1.getIcon().toString();
它僅返回參照對象 「[email protected]
」;
不是絕對路徑,那麼我該如何返回該圖標的絕對路徑?
例如:C:/File/imageicon.jpg
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()總是以字符串格式返回對象。嘗試它沒有toString()像:jLabel1.getIcon() –
無法完成。圖像和圖標沒有用於此的API,並且除了文件系統之外,通常可以在上下文中使用。 – ControlAltDel
你不能,因爲一個圖標和一個文件是不相關的。你可以通過讀取一個文件來創建一個圖標,但你也可以通過其他幾種方式創建一個圖標(從jar資源,套接字,內存中的字節數組等等) –