怎么制作我自己的包给我问题?

时间:2013-07-13 04:52:20

标签: java image nullpointerexception embedded-resource imageicon

我正在学习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创建的默认包时,程序运行正常。但是,当我创建自己的包时,程序会返回错误。

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

enter image description here

如果ship.png

的位置存在问题,我会附带包浏览器的视图

1 个答案:

答案 0 :(得分:2)

我认为它位于该位置,您应该使用“/ 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");