2017-06-06 75 views
1

在JavaFX 8中,將Image與InputStream構造函數加載並使用url構造函數加載Image有什麼區別。圖像構造函數的區別

如果我使用

private Image getImage(String s){ 
    return new Image(getClass().getResourceAsStream("/fruit/" +s+".png")); 
} 

它做同樣的事情

private Image getImage(String s){ 
    return new Image("/fruit/" +s+".png"); 
} 

首先,我想,當我編譯它作爲一個罐子,但它確實後者是行不通的。
Here是指向圖像API的鏈接。

+1

只有最小的區別:只要使用最方便的就可以。如果省略前導'/','getResourceAsStream(...)'將搜索相對於當前類,而'String'版本將搜索相對於類路徑。例如,如果您正在從數據庫BLOB字段或網絡套接字加載,則「InputStream」選項將是您的唯一選項。 –

回答

2

在我看來,最大的不同在於系統將搜索文件的位置。如果將項目導出爲可執行的JAR文件,您會注意到Image(InputStream)將允許您在JAR文件中進行搜索,而Image(String)只允許您在JAR文件之外進行搜索。

相關問題