我想將圖標設置爲我的JFrame。我做到以下幾點:將圖像添加到罐子
Image icon = Toolkit.getDefaultToolkit().getImage("src/images/icon.jpg");
this.setIconImage(icon);
當我運行從NetBeans中的代碼它工作正常,但是當我嘗試從jar文件的代碼,圖像不會在我的JFrame所示。我試圖加載圖像作爲資源:
this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/src/images/icon.jpg")));
但是當我運行這段代碼失敗與NullPointerException
Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:99)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:113)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
我怎麼能這樣做的工作?
編輯: 感謝所有, 問題是由指定的圖像解決作爲
Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("images/icon.JPG"))
至於它似乎相當怪異,而且會更好,如果它像
this.setIconImage(new ImageIcon(pathToIcon).getImage());
什麼是你的JAR文件的結構,即在JAR文件到底在哪圖像放在哪裏? – 2011-03-30 10:53:11