2017-03-16 48 views
0

獲得的ImageIcon絕對路徑通過使用:從一個JLabel

jLabel1.getIcon().toString();

它僅返回參照對象 「[email protected]」;

不是絕對路徑,那麼我該如何返回該圖標的絕對路徑?

例如:C:/File/imageicon.jpg

+0

的toString()總是以字符串格式返回對象。嘗試它沒有toString()像:jLabel1.getIcon() –

+0

無法完成。圖像和圖標沒有用於此的API,並且除了文件系統之外,通常可以在上下文中使用。 – ControlAltDel

+0

你不能,因爲一個圖標和一個文件是不相關的。你可以通過讀取一個文件來創建一個圖標,但你也可以通過其他幾種方式創建一個圖標(從jar資源,套接字,內存中的字節數組等等) –

回答

-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

請編輯您的答案,以包含一些關於您的代碼如何回答問題的文本。也許,爲它的輸出添加一個例子。另外,請考慮重新格式化您的代碼。 – Yannis

+0

OP說'toString()'結果爲「[email protected]」;你說'toString()'產生一個文件路徑,現在怎麼樣?好吧,你們都是,但是你們沒有解釋代碼中的差異,以及爲什麼'toString()'調用的行爲不同。 – Tom

+0

謝謝..我有一些錯誤,現在我糾正它.. @ Yannis –