如何找到ImageIcon所需图像的java.net.URL?

如何找到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

我正在尝试将ImageIcon添加到JLabel,我正在添加到JPanel以获取Java Swing游戏的图形。但是,我甚至无法用当前代码为JLabel创建ImageIcon。我已经尝试过查看堆栈溢出,但找不到适合我的问题的答案。请帮忙

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中