繁体   English   中英

获取资源时的NPE

[英]NPE when getting resource

我正在尝试从Java应用程序的资源文件夹中获取图像。 但是,无论我尝试以哪种方式获取资源,它都会为我提供NPE。

这是我的代码:

JLabel lbl_pic;
ImageIcon i = new ImageIcon(getClass().getClassLoader().getResource("res/img/user.png")); //NPE occurres here
lbl_pic = new JLabel(i);

我的NetBeans项目文件夹如下所示:

ProjectName
    >Source Packages
        >com.scfa.projectName
            >main.java
        >com.scfa.projectName.res.img
            >user.png

有人可以告诉我,我做错了吗?

我已经看过以下主题,但无法正常工作:

非常感谢您的帮助,我前进了:)

您似乎在说user.pngcom.scfa.projectName.res.img包中

在这种情况下,您可以使用以下方法获取其URL:

URL url = getClass().getClassLoader().getResource(
    "/com/scfa/projectName/res/img/u‌​ser.png");  // absolute path

要么

URL url = getClass().getResource("res/img/user.png"); // relative path

通常,如果要解析相对于类的资源路径,则必须在Class对象上调用getResource ,而不是在其类加载器上调用。 ClassLoader对象的getResource方法将相对资源路径视为绝对资源路径。 同样适用于ClassClassLoadergetResourceAsStream方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM