Java 使用相对路径从资源文件夹加载图像

Java 使用相对路径从资源文件夹加载图像,java,swt,Java,Swt,如何使用相对路径设置外壳背景中的图像。我有一个位于文件夹“res”中的图像。我在这里添加了屏幕截图,只是为了让您更好地理解“目录结构”以及我的问题(以防您觉得它有点模棱两可)。任何建议和帮助都将不胜感激。SplashWindow.jpg放在类notDltNow旁边,您可以指定该类作为相对路径的参考,因此您只需编写: shell.setBackgroundImage(SWTResourceManager.getImage( notDltNow.class, "SplashWindow.jp

如何使用相对路径设置外壳背景中的图像。我有一个位于文件夹“res”中的图像。我在这里添加了屏幕截图,只是为了让您更好地理解“目录结构”以及我的问题(以防您觉得它有点模棱两可)。任何建议和帮助都将不胜感激。

SplashWindow.jpg放在类
notDltNow
旁边,您可以指定该类作为相对路径的参考,因此您只需编写:

shell.setBackgroundImage(SWTResourceManager.getImage(
    notDltNow.class, "SplashWindow.jpg"));

将资源放在
src
文件夹中也是一个好主意,因此当您将代码导出(例如,导出到jar中)时,资源也将被导出,并且代码仍然可用,无需额外的麻烦。

要从
资源
文件夹中读取图像,您需要:

将res文件夹添加到类路径

绝对定位文件,即“/res/SplashWindow.jpg”


希望这有帮助

我知道这样做的方法。请告诉我如何从src之外的“res”文件夹加载图像。加载图像的方式是
SWTResourceManager.getImage(Class,String)
使用
Class.getResourceAsStream()
,因此图像必须放在加载类的相同位置。您必须将映像放在src文件夹中,或者以其他方式加载映像。如果不使用SWTResourceManager,有什么方法可以实现我的目标吗?Image类会有帮助吗?
SWTResourceManager.getImage()
有多个表单/重载。有一个版本将图像路径作为字符串。当您从Eclipse运行应用程序时,可以将
“res/SpashWindow.jpg”
传递给它,前提是当前文件夹是项目根目录。