加载图片资源我的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()
,它可以根据您运行应用程序的方式从文件系统和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
提交
取消