0

Eclipse Javaプロジェクトと同じディレクトリにローカルに保存されている画像ファイル(gif)を読み込もうとしています。

refgif画像が保存される相対パスです。

public Sprite getSprite(String ref) {
      BufferedImage sourceImage = null;
      try {
        URL url = this.getClass().getClassLoader().getResource(ref);        
        if (url == null) {
        fail("Can't find ref: "+ref);
       }
       sourceImage = ImageIO.read(url);
       } catch (IOException e) {
        fail("Failed to load: "+ref);
       }
}

上記の方法を使用するクライアントコードは次のとおりです。

public Entity(String ref,int x,int y) {
        this.sprite = ResourceManager.getSprite("sprites/alien.gif");
        this.x = x;
        this.y = y;
    }

Eclipseワークスペースとプロジェクトディレクトリ内spritesに、gif画像が保存されているフォルダーがあります。ただし、クライアントコードは常に次の値を返します。Can't find ref: sprites/ship.gif

上記のアプローチでgif画像をロードするために何か間違ったことをしていますか?この場合、ファイルルックアップを実行するためのより簡単な方法はありますか?

アドバイスをありがとうございます。

4

1 に答える 1

3

このgetResource()メソッドはクラスパスを検索してファイルを見つけます。おそらく、スプライトディレクトリがクラスパスにありません。

プロジェクトのプロパティを開いてみてください-> Java Build PathLibrariesタブを選択してボタンをクリックし、スプライトAdd Class Folderの親ディレクトリを選択します。

于 2009-11-25T19:37:15.243 に答える