我正在尝试将一个ImageIcon添加到一个JLabel中,我要添加到一个JPanel中,以便为我的Java游戏获取图形。但是,我甚至不能用我当前的代码为ImageIcon创建JLabel。我已经试过查看堆栈溢出,但我找不到一个适合我的问题的答案。请帮帮忙
protected ImageIcon createImageIcon(Class c, String file) {
File f = new File(file);
String path = f.getAbsolutePath();
java.net.URL imgURL = c.getResource(path);
System.out.println(imgURL);
System.out.println(path);
if (path != null) {
return new ImageIcon(path);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}打电话来:
Graphic startScreenG = new Graphic();
Icon startScreenI = startScreenG.createImageIcon(MyAppClass, "download.jpg");
JLabel startScreen = new JLabel(startScreenI);
Screen.add(startScreen);这将返回:
为空
C:\Users*justmyname*\Documents\NetBeansProjects\IA\download.jpg
发布于 2020-03-09 18:10:13
注意,getResource按名称而不是文件路径工作。因此,要使c.getResource(path)按您的意愿工作,"download.jpg“文件需要在类路径IIRC中。但是,由于您已经有了一个表示所需的图像文件的File对象,所以只需调用f.toURI().toURL()注意到f.toURL()就不受欢迎了。
希望能帮上忙!
https://stackoverflow.com/questions/60605503
复制相似问题