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