从资源包中获取图标(Java)

时间:2014-07-08 16:46:30

标签: java icons classloader

我正在尝试创建一个java程序,并且有一个应用程序图标是resources / Icon.png。我的代码目前是

ClassLoader cldr = this.getClass().getClassLoader();
URL url = cldr.getResource( "//resources//Icon.png" );
Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.createImage(url);
this.setIconImage( img );

但是我得到了

  

取消图片的未捕获错误:java.lang.NullPointerException

我是否正确引用了图标的位置?资源是程序中的一个包。

2 个答案:

答案 0 :(得分:1)

使用ClassLoader加载资源时,路径必须是斜线分隔路径,而不是以斜杠开头:

resources/Icon.png

如果直接使用类(SomeClass.class.getResource(...)),那么它可以从斜杠开始,通过从类路径的根开始查找资源,或者它不能以斜杠开头来查找资源从与班级相同的包开始。

答案 1 :(得分:-1)

不确定这是否会修复它,但更改代码以便您使用File和BufferedImage。如果不是,请告诉我。

编辑:没看到底部。而不是URL,使用文件。