【问题标题】:NullPointerException when I have clearly referenced the file correctly [closed]当我清楚地正确引用文件时出现 NullPointerException [关闭]
【发布时间】:2013-10-18 23:11:11
【问题描述】:

我正在编写一个基本的 GUI 用于练习,并且我想包含一个图像,并且在仔细检查了我的代码的所有之后,当我运行它时仍然有一个 NullPointerException。

Image i;
ImageIcon ii;

...

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

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

【问题讨论】:

  • 试试getResource("/shrek.jpg")
  • 如果您不告诉我们在哪里 NullPointerException 出现,我们真的无法帮助您...
  • 你把你的shrek.jpg图片放在哪里了?
  • 与所有此类情况一样,将语句分成两部分,这样您就可以检查this.getClass().getResource("shrek.jpg") 的值,这显然是null。然后找出为什么它没有找到文件。

标签: java


【解决方案1】:

查看“getRecource(..)”的文档:

http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource(java.lang.String)

一个用于读取资源的 URL 对象,如果资源找不到或调用者没有足够的权限来获取资源,则为 null。 p>

【讨论】:

  • 他没有提供信息。关于他的形象的位置。所以你的答案纯属猜测。
  • @brano 他没有,但这是该行 NPE 的唯一可能解释。我们不能确切地说为什么它没有找到资源,但很明显它要么不存在,要么名称不正确。
  • 好吧好吧..我撤回了我的反对票。虽然我投票结束了问题。
猜你喜欢
  • 1970-01-01
  • 2021-04-11
  • 2016-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多