2017-05-24 54 views
0

我試圖讓一個應用程序來管理一些飲料配方...... 我需要顯示在JPanel飲料形象已經有了這樣的文件路徑工作:如何將對象名稱作爲文件路徑的一部分進行連接?

ImageIcon image = new ImageIcon("src/fotos/trinidad.jpg"); 

的問題是,當我嘗試設置這個路徑設置它的對象名稱,該圖像未被加載。

String s = ("src/fotos/"+b.getNome().toLowerCase()+".jpg"); 
ImageIcon image = new ImageIcon(s); 

打印此字符串s我有這樣的結果:

System.out.println(s); 

的src /照片/ trinidad.jpg

顯然,這看起來相同的路徑,但圖像不是正在加載。 我在做什麼錯?

+5

順便說一句,當您的代碼被編譯並運行時,'src'文件夾不存在。請參閱https://stackoverflow.com/questions/1464291/how-to-really-read-text-file-from-classpath-in-java –

+2

'ImageIcon image = new ImageIcon(getClass()。getResource(「/ fotos ''會生成一個更合理的結果,但是我會試着使用'ImageIO.read'來替代,因爲如果圖像不能被讀取則拋出'IOException' – MadProgrammer

+3

要添加到@ cricket_007的評論。應用程序資源在部署時將成爲嵌入式資源,所以現在開始訪問它們是明智的做法。 [tag:embedded-resource]必須通過URL而不是文件訪問。請參閱[信息。頁面爲嵌入式資源](http://stackoverflow.com/tags/embedded-resource/info)如何形成的URL。 –

回答

0

嘗試這樣的事情,如果圖像(路徑)不存在,你可以捕捉異常並相應地處理。

BufferedImage drinkImage = null; 
    try { 
     drinkImage= ImageIO.read(new File("src/fotos/trinidad.jpg")); 
    } catch (IOException e) { 
     // TODO 
     e.printStackTrace(); 
    } 
    ImageIcon image = new ImageIcon(drinkImage); 

    // Put image in your JPanel 
+0

你的解決方案和@MadProgrammer一樣好。 我正在使用'ImageIcon image = new ImageIcon(getClass()。getResource(「/ fotos/trinidad.jpg」));' – Yoostah

+0

這是另一個好辦法。很高興幫助@Yoostah –

相關問題