加載圖片資源我的GUI出錯了。嘗試設置標題欄圖標,然后將其包含在Runnable JAR中。BufferedImage image = null;try {
image = ImageIO.read(getClass().getClassLoader().getResource("resources/icon.gif"));} catch (IOException e) {
e.printStackTrace();}frame.setIconImage(image);這是我得到的錯誤:Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at GUI.<init>(GUI.java:39)
at GUI.main(GUI.java:351)圖像位于正確的目錄中,“resources”文件夾是項目文件的根目錄
3 回答

斯蒂芬大帝
TA貢獻1827條經驗 獲得超8個贊
有一種更簡單的方法來加載和設置圖像作為框架圖標:
frame.setIconImage( new ImageIcon(getClass().getResource("/resources/icon.gif")).getImage());
就這樣 :)!您甚至不必使用try-catch塊,因為ImageIcon
不會拋出任何聲明的異常。因此getClass().getResource()
,它可以根據您運行應用程序的方式從文件系統(tǒng)和jar中運行。
如果您需要檢查圖像是否可用,可以檢查返回的URL getResource()
是否為null
:
URL url = getClass().getResource("/resources/icon.gif");if (url == null) System.out.println( "Could not find image!" );else frame.setIconImage(new ImageIcon(url).getImage());
添加回答
舉報
0/150
提交
取消