java - 为什么自己制作包裹会给我带来问题?

标签 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

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

最佳答案

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

关于java - 为什么自己制作包裹会给我带来问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17627087/

相关文章:

java - Saiku开源项目Maven构建无改动后第二次失败

java - 当 ImageIcon(String) 的路径无效时会发生什么 (Java)?

java.util.timer定时器空指针异常

java - 你的 Java 'rules' 是什么?

java - 如果我遍历一个实际上是 java 列表的集合,集合会有顺序吗?

java - 使用 SQL 加载器批量插入数据

html - 使用 bootstrap 在图像下方连续显示文本

php - 图像随机标题有问题

java - 什么是 NullPointerException,我该如何解决?

java - 什么是NullPointerException,我该如何解决?