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 已检查图像。

我尝试了不同的组合,结果相同:java.io.FileNotFoundException,当我在 Eclipse 中运行它时:

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 回答