1

我正在尝试使用以下代码将背景加载到我的 JFrame:

image = ImageIO.read(getClass().getResourceAsStream(s));

我在哪里s 尝试过:

/res/Background/bg_menu.gif
Background/bg_menu.gif
/Background/bg_menu.gif
res/Background/bg_menu.gif

我的 res 文件夹位于项目根目录中,如下所示:

Game
-- src
-- res

我做了以下事情:

Project Properties -> Sources -> Add Folder -> res

我收到的错误是:

java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1348)
at com.game.rpg.tilemap.Background.<init>(Background.java:29)
at com.game.rpg.gamestate.MenuState.<init>(MenuState.java:34)
4

1 回答 1

2

如果这是你的包结构

/res/Background/bg_menu.gif

并且/res是一个源文件夹,那么

/Background/bg_menu.gif

应该在你的类路径的根目录下。因此,您可以使用

image = ImageIO.read(getClass().getResourceAsStream("/Background/bg_menu.gif"));

注意前导/路径规则在 javadoc 中进行了解释。

如果这不起作用,则说明您的应用程序没有使用 Netbeans 正确构建。检查部署。

于 2013-10-03T15:47:24.000 回答