如何找到ImageIcon所需图像的java.net.URL?
我正在尝试将ImageIcon添加到JLabel,我正在添加到JPanel以获取Java Swing游戏的图形。但是,我甚至无法用当前代码为JLabel创建ImageIcon。我已经尝试过查看堆栈溢出,但找不到适合我的问题的答案。请帮忙如何找到ImageIcon所需图像的java.net.URL?,java,swing,graphics,icons,imageicon,Java,Swing,Graphics,Icons,Imageicon,我正在尝试将ImageIcon添加到JLabel,我正在添加到JPanel以获取Java Swing游戏的图形。但是,我甚至无法用当前代码为JLabel创建ImageIcon。我已经尝试过查看堆栈溢出,但找不到适合我的问题的答案。请帮忙 protected ImageIcon createImageIcon(Class c, String file) { File f = new File(file); String path = f.getAbsolutePat
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
请注意,
getResource
按名称而不是文件路径工作。因此,要使c.getResource(path)
按照您的意图工作,“download.jpg”文件需要位于类路径IIRC中。但是,由于您已经有了一个表示所需图像文件的File对象,因此只需调用f.toURI().toul()
请注意,f.toURL()
已被弃用
希望有帮助 当程序打包为.jar时,依赖文件将不起作用。我设法获得了图片的URL,但它仍然没有出现在JPanel中