2017-01-30 13 views
1

Eclipseからアプリケーションを実行しているときにアプリケーションアイコンが正常に動作しますが、実行可能なjarファイルとしてエクスポートすると表示されません。エクスポートされたプロジェクトの後にアプリケーションアイコンがありませんか?

これは、私は、アイコンを設定するために使用するコードです:

try { 
    setIconImage(ImageIO.read(new File("resources/icons/icon.png"))); 
} 
catch (IOException exc) { 
    exc.printStackTrace(); 
} 

アイコンがresources/iconsと呼ばれるソース・フォルダ内にあります。

アイコンがエクスポートに含まれないのはなぜですか?

Fileメソッドのアイコンを探す代わりにURLを使用しています。これは素晴らしい作品です!

デフォルトでファイルのアイコンを変更することはできますか?私はそれを変更するためにリソースハッカーなどを使用しなければならないと思う。しかし、コードを介して可能な場合、私はそれを学ぶことが大好きだ!だからあなたのsetIconImageがそうようにする必要があり

Icon icon = new ImageIcon(getClass().getResource("resources/icons/icon.png")); 

setIconImage(new ImageIcon(getClass().getResource("resources/icons/icon.png")).getImage()); 

あなたのパッケージ内部のあなたのアイコンの出口が、あなたはこのように行うことができる場合:

+0

フォルダをビルドまたはエクスポート仕様に挿入しましたか? – IQV

+1

アプリケーションリソースはデプロイメント時に埋め込まれたリソースになるので、今のようにアクセスすることをお勧めします。 [タグ:埋め込みリソース]は、ファイルではなくURLでアクセスする必要があります。 [info。埋め込みリソースのページ](http://stackoverflow.com/tags/embedded-resource/info)を参照してください。 –

+0

@IQVそれはオプションではありません、実行可能な瓶としてエクスポートすると、Eclipseのように思えます! –

答えて

1

あなたはこのように、代わりに​​のgetResourceを使用することができます

Icon icon = new ImageIcon(getClass().getResource("/com/icons/icon.png")); 

あなたのsetIconImageは次のようにする必要があります。

setIconImage(new ImageIcon(getClass().getResource("/com/icons/icon.png")).getImage()); 

希望はこちらです。

+1

※あなたのアイコンがあなたのパッケージ内にある場合、あなたはそうすることができます:。 .com/icons/icon.png "' *はパス**の相対パスです現在のパッケージ**(推奨しません)と '' /com/icons/icon.png ''は、class-pathのルートからのパスです(最も堅牢です)。 –

関連する問題