Java 当我清楚地正确引用了文件时,出现NullPointerException

Java 当我清楚地正确引用了文件时,出现NullPointerException,java,Java,我正在编写一个用于实践的基本GUI,我想包含一个图像,在仔细检查所有代码后,运行它时仍然会出现NullPointerException Image i; ImageIcon ii; 编辑:NPE出现在我初始化ImageIcon的行中,检查文档中的“GetResource(..)”: 用于读取资源的URL对象,如果找不到资源或调用程序没有足够的权限获取资源,则为null 尝试使用getResource(“/shrek.jpg”)如果您不告诉我们NullPointerException发生在哪

我正在编写一个用于实践的基本GUI,我想包含一个图像,在仔细检查所有代码后,运行它时仍然会出现
NullPointerException

Image i;
ImageIcon ii;


编辑:NPE出现在我初始化
ImageIcon

的行中,检查文档中的“GetResource(..)”:

用于读取资源的URL对象,如果找不到资源或调用程序没有足够的权限获取资源,则为null


尝试使用
getResource(“/shrek.jpg”)
如果您不告诉我们
NullPointerException发生在哪里,我们就帮不了您什么忙……您把
shrek.jpg
图像放在哪里了?与所有这些情况一样,将语句分成两部分,这样您就可以检查
this.getClass().getResource(“shrek.jpg”)的值,这显然是
null
。然后找出为什么找不到文件,他没有提供信息。关于他的形象的位置。所以你的答案纯粹是猜测。@brano他没有,但这是关于NPE的唯一可能解释。我们不能确切地说它为什么找不到资源,但很明显它要么不存在,要么命名不当。好吧,好吧,我撤回了我的否决票。虽然我投票结束了这个问题。
public Pnl() {
    BorderFactory.createLineBorder(Color.BLACK, 5);
    setBackground(Color.GREEN); 

    x = 10;
    y = 10;

    ii = new ImageIcon(this.getClass().getResource("shrek.jpg"));
    i = ii.getImage();

    setDoubleBuffered(true);

    timer.start();
} // end of constructor