我知道这个问题已经发布了,但我已经尝试了我发现的所有内容,但没有任何效果。
我有一个 Maven 项目,我想在按钮上使用图像。我把图像放在src/main/res folder
。 Maven clean/Maven 安装后,我的所有图像都可以在target/classes
文件夹。我希望图像位于.jar
文件,这样我在使用它时就不需要创建单独的文件夹。
这是我尝试用来加载按钮上新图标的图像的代码:
JButton button = new JButton();
try {
Image img = ImageIO.read(getClass().getResource("cross_icon.jpg"));
button.setIcon(new ImageIcon(img));
} catch (Exception ex) {
System.out.println(ex);
}
subsPanel.add(button);
但我得到一个input == null
。我尝试使用main/res/cross_icon.jpg
or res/cross_icon.jpg
,但没有任何作用。
你必须放一个/
如果在加载资源时是绝对路径,则在资源路径的开头Class.getResource
.
Image img = ImageIO.read(getClass().getResource("/cross_icon.jpg"));
请参阅 javadocClass.getResource https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getResource-java.lang.String-
在委派之前,使用以下算法根据给定资源名称构造绝对资源名称:
PS
如果你使用ClassLoader.getResource
资源名称始终被解释为绝对路径。例如。
Image img = ImageIO.read(getClass()
.getClassLoader()
.getResource("cross_icon.jpg"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)