我正在尝试创建一个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
我是否正确引用了图标的位置?资源是程序中的一个包。
答案 0 :(得分:1)
使用ClassLoader加载资源时,路径必须是斜线分隔路径,而不是以斜杠开头:
resources/Icon.png
如果直接使用类(SomeClass.class.getResource(...)
),那么它可以从斜杠开始,通过从类路径的根开始查找资源,或者它不能以斜杠开头来查找资源从与班级相同的包开始。
答案 1 :(得分:-1)
不确定这是否会修复它,但更改代码以便您使用File和BufferedImage。如果不是,请告诉我。
编辑:没看到底部。而不是URL,使用文件。