java-将图像图标添加到按钮/标签中
作者:互联网
我知道这个问题已经发布,但是我已经尝试了所有发现的内容,但没有任何效果.
我有一个Maven项目,我想在按钮上使用图像.我将图像放在src / main / res文件夹中.在安装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);
但我得到一个输入== null.我尝试使用main / res / cross_icon.jpg或res / cross_icon.jpg,但没有任何效果.
解决方法:
通过Class.getResource加载资源时,如果它是绝对路径,则必须在资源路径的开头放置/.
Image img = ImageIO.read(getClass().getResource("/cross_icon.jpg"));
参见Class.getResource
的Javadoc
Before delegation, an absolute resource name is constructed from the given resource name using this algorithm:
- If the name begins with a ‘/’ (‘\u002f’), then the absolute name of the >resource is the portion of the name following the ‘/’.
Otherwise, the absolute name is of the following form:
06001
Where the modified_package_name is the package name of this object with ‘/’ >substituted for ‘.’ (‘\u002e’).
聚苯乙烯
如果使用ClassLoader.getResource,则资源名称始终被解释为绝对路径.例如.
Image img = ImageIO.read(getClass()
.getClassLoader()
.getResource("cross_icon.jpg"));
标签:maven,icons,swing,embedded-resource,java 来源: https://codeday.me/bug/20191111/2018298.html