【问题标题】:How come making my own package gives me issues?为什么制作我自己的包裹会给我带来问题?
【发布时间】:2013-07-11 17:09:12
【问题描述】:

我正在学习用 Java 编写游戏的基础知识。出于某种原因,每次我使用ImageIcon 创建程序时,都会出现错误:

Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at game.Picture.<init>(Picture.java:14)
at game.Main.<init>(Main.java:11)
at game.Main.main(Main.java:7)

经过一些实验,我发现当我使用eclipse创建的默认包时,程序运行良好。但是,当我创建自己的包时,程序会返回错误。

下面我有两个相同的程序,唯一的区别是一个使用默认包,一个使用我自己的包,称为“游戏”

我包含了一个包资源管理器的视图,以防ship.png的位置出现问题

【问题讨论】:

  • ii 不为空吗????
  • 我认为它在该位置。尝试使用 /raw/ship.png 而不是 raw/ship.png。在游戏示例中,它将查找 /game/raw/ship.png。
  • “感谢所有的帮助,-Steven”不要在问题中包含噪音。
  • @BruceMartin 你应该这样回答。
  • @Steven :尝试执行answer中引用的步骤

标签: java image nullpointerexception embedded-resource imageicon


【解决方案1】:

我认为它在位置,你应该使用 "/raw/ship.png" 而不是 "raw/ship.png"

尝试:

   ImageIcon il = new ImageIcon(this.getClass()
                .getResource("/raw/ship.png");

在当前代码中,“raw/ship.png”将被 Java 翻译为 Package_Name/raw/ship.png,在下面的示例中为 game/raw/ship.png 。显然,如果代码从 默认包 (package_name="") 运行,Package_Name/raw/ship.png 将变为 /raw/ship.png 并且有效。

package game;

...

   ImageIcon il = new ImageIcon(this.getClass()
                .getResource("raw/ship.png");

【讨论】:

  • 这不会编译。你的意思是.getResource("/raw/ship.png"));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
  • 2018-07-21
  • 2013-07-04
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多