【发布时间】:2021-10-12 05:38:34
【问题描述】:
我查看了其他答案并尝试了:
ImageIcon img = new ImageIcon(url);
setIconImage(img.getImage());
和:
URL imgURL = getClass().getClassLoader().getResource(url);
if (imgURL != null) {
System.out.println("Found icon image: "+imgURL);
Image image=Toolkit.getDefaultToolkit().getImage(imgURL);
setIconImage(image);
} else {
System.err.println("Could not find icon image");
}
在JFrame 类中,我将图像文件放在资源文件夹中,以及与我的.java 文件和我的项目的根文件夹相同的文件夹,甚至在开头包含“/”符号URL 字符串,但没有任何效果。我想知道最近是否有人尝试过它并让它工作?
【问题讨论】:
-
url字符串里面是什么? -
为您的项目创建一个资源文件夹。将图像文件放在资源文件夹中。将资源文件夹放在类路径上。阅读此Stack Overflow question 的答案。
-
1) 将
getClass().getClassLoader().getResource(url);更改为简单的getClass().getResource(url);。类加载器不适用于应用程序资源。 2) 使用ImageIO加载图片。如果出现问题,它将提供有用的输出(通过Throwable.printStackTrace()。3)将图像放在类路径根目录的resources路径中(不在另一个包中)并使用@987654333启动String@ -
我根据吉尔伯特提供的链接的第一个答案添加了一个资源文件夹,并尝试了提供的建议。它能够找到该文件,但由于某种原因它不会更改图标图像。
-
看起来资源文件夹已添加到路径中,并且 url 是“icon.png”,我也尝试了“/resources/”,但如果我这样做,它找不到文件。但它使用“icon.png”找到它。
标签: java swing jframe embedded-resource