0

eclipse を使用して RCP アプリケーションを作成していますが、生成されたコードでイメージを見つける方法がわからないため、イメージをロードできません。私は自分の特定の問題を説明しようとします。

注: このプロジェクトはゲーム エディターで、次の場所にあります: http://chelder86.github.com/ArcadeTongame/

まず、これはプロジェクトの構造です。

ここに画像の説明を入力

次のコードは、Eclipse 実行構成で作業ワークスペースを変更した後、Eclipse 内で RCP アプリケーションを正しく実行します。

package figures;

(...)

public class Sound extends ImageFigure {

  public Sound()  { 

      String picturePath = "src/figures/Sound48.png";
      // or String picturePath = "bin/figures/Sound48.png";

      Image image = new Image(null, picturePath);
      this.setImage(image); 
  }
}

しかし、製品を作成して RCP アプリケーションとしてエクスポートすると機能しません。つまり、RCP アプリケーションは機能しますが、そのイメージをロードしません。 注: build.properties にはイメージがチェックされています。

これらのようなさまざまな組み合わせを試してみましたが、Eclipse で実行すると同じ結果になりました: java.io.FileNotFoundException:

package figures;
(...)

public class Sound extends ImageFigure {

  public Sound()  { 

      String picturePath = getClass().getResource("Sound48.png").getPath();
      // or String picturePath = this.getClass().getClassLoader().getResource("bin/figures/Sound48.png").getPath(); 
      // or String picturePath = this.getClass().getClassLoader().getResource("figures/Sound48.png").getHost(); 
      // or similars

      Image image = new Image(null, picturePath);
      this.setImage(image);
    }
}

どうすれば正しくロードできますか?

助けてくれてありがとう!:)

カルロス

4

1 に答える 1

0

「icons」フォルダと一緒に別の「figures」フォルダを作成してみてください。.javaファイルではなく、画像ファイルのみを配置します。クラスパスとbuild.propertiesに追加することを忘れないでください。次に、このようなものが機能するはずです:

InputStream in = getClass().getResourceAsStream("figures/Sound48.png");
Image image = new Image(Display.getDefault(), in);
于 2013-02-07T06:55:55.593 に答える