2012-05-07 6 views
3

getClass().getResource()メソッドを使用すると、実行可能なjarファイルをEclipseで書き出すときに、resフォルダをコンパイルする必要があります。.jarファイルから画像を取得する

現在の読み取り画像コード

public Image loadImage(String fileName) { 
    return new ImageIcon(fileName).getImage(); 
} 

public Image loadImage(String fileName) { 
    return new ImageIcon(getClass().getResource(fileName).getImage(); 
} 
+0

'fileName'の値は何ですか? Jarの構造は何ですか?これらのメソッドを含むクラスはどのパッケージからですか? –

+0

イメージplayer1 = loadImage( "res/player1.png");引用符で囲まれたビットはfileNameの値です – DCSoft

答えて

2

私は今、問題を修正した - これは、ファイル名の値がちょうどイメージ名など BufferedImageのIMG = loadImage(「background.png」)である

public BufferedImage loadImage(String fileName){ 

    BufferedImage buff = null; 
    try { 
     buff = ImageIO.read(getClass().getResourceAsStream(fileName)); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     return null; 
    } 
    return buff; 

} 

を動作するコードです。

ありがとうございました。

+0

Eclipseを使用している間、あなたは間違っていると思います。この記事を訪れたことがありましたか?[あなたのエクリプスプロジェクトに画像を追加する方法](http://stackoverflow.com/questions/9864267/load-アイコンの画像例外/ 9866659#9866659)、これはあなたに助けになるかもしれないし、そうでなければ[ここ](http://gagandeepbali.uk.to/gaganisonline/webpages/makejareclipse.html)の手順に従うかもしれない –

+0

実際にこのコードは動作します私はresと呼ばれるフォルダを作成し、それをEclipse上で右クリックしてBuild Bathをクリックしなければなりませんでした:ソースフォルダとして使用してコードが動作し、はい前にそれらの投稿を見ていました。 – DCSoft

+0

申し訳ありませんが、喜んでそれをソートしました:-) –

2

動作しないコードのいずれか:あなたのパスが間違っている

  • もしそうなら、あなたはエラーメッセージを取得する必要があり、それが実際にどのような経路を見ているかを確認するためにチェックしてください。または、デバッグしてどのパスを試してみるか、試行するパスを表示するだけです。

または

  • それは瓶の中ではありません。 jarファイルをzipプログラムでチェックし、zipファイルを開くように名前を変更して開き、ファイルが実際に存在することを確認します。
+0

大丈夫です。また、jarファイルのresフォルダをコンパイルするためにEclipseを取得できないようですが、クラスパスに追加する必要がありますか? – DCSoft

+0

あなたは私が推測するファイルメニューからエクスポート機能を使用していますか?あなたがそこに来るウィザードでは、あなたはresフォルダやファイルやファイルの種類を含める必要があります。 –

+0

ええ、それは私がやっていることですが、実行可能なjarファイルをエクスポートすると、エクスポートjarファイルでのみ使用できるオプションはありません。 – DCSoft