setIconImage intellij项目javax.swing
我在intellij中设置swing项目的图标时遇到了一个问题 我试过这个setIconImage intellij项目javax.swing,java,swing,intellij-idea,icons,Java,Swing,Intellij Idea,Icons,我在intellij中设置swing项目的图标时遇到了一个问题 我试过这个 iconpath = execPath + File.separator + "images" + File.separator + "icon.png"; this.setIconImage(new ImageIcon(getClass().getResource(iconpath)).getImage()); 但是得到 java.lang.ExceptionInIniti
iconpath = execPath + File.separator + "images" + File.separator + "icon.png";
this.setIconImage(new ImageIcon(getClass().getResource(iconpath)).getImage());
但是得到
java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
at cgui.FormApp.<init>(FormApp.java:52)
at controller.Main.<clinit>(Main.java:39)
Exception in thread "main"
得到
java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1348)
at cgui.FormApp.<init>(FormApp.java:58)
at controller.Main.<clinit>(Main.java:39)
Exception in thread "main"
java.lang.ExceptionInInitializeError
原因:java.lang.IllegalArgumentException:input==null!
在javax.imageio.imageio.read(imageio.java:1348)
在cgui.FormApp.(FormApp.java:58)
在controller.Main.(Main.java:39)
线程“main”中出现异常
我有我的项目结构像。你们知道怎么做吗
您将获得Main.java的相对图像路径 您应该使用getClassLoader()从绝对路径获取图像
this.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("images/icon.png")).getImage());
获取了由以下原因引起的java.lang.ExceptionInInitializeError:线程“Main”中的java.lang.NullPointerException位于cgui.FormApp.(FormApp.java:51)处的javax.swing.ImageIcon.(ImageIcon.java:217)位于controller.Main.(Main.java:39)处的java.lang.NullPointerException,并将图像文件夹移动到java文件夹中。images/icon.png应位于target/classes中。我的图标文件已损坏。我试着在网上和其他人交流,效果很好。非常感谢你。
this.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("images/icon.png")).getImage());