2017-06-06 11 views
1

JavaFX 8では、ImageをInputStreamコンストラクタでロードし、ImageにURLコンストラクタをロードする方法との違いは何ですか?イメージコンストラクタの相違点

私は

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

を使用している場合、私はjarファイルとしてそれをコンパイルすると、後者は動作しないだろうと思ったが、それはない最初

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

と、それは同じことをするのか。
HereはImage of APIへのリンクです。

+1

最小限の違いがあります。最も便利なものを使用してください。先頭の '/'を省略すると、 'getResourceAsStream(...)'は現在のクラスを基準にして検索しますが、 'String'バージョンはクラスパスを基準にして検索します。たとえば、データベースのBLOBフィールドやネットワークソケットからロードする場合は、 'InputStream'オプションが唯一のオプションになります。 –

答えて

2

私の意見では、最大の違いは、システムがファイルを検索する場所です。プロジェクトを実行可能なJARファイルにエクスポートすると、Image(InputStream)はJARファイル内で検索できますが、Image(String)ではJARファイルの外でしか検索できません。