我正在尝试使用以下代码将背景加载到我的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)
答案 0 :(得分:2)
如果这是您的包结构
/res/Background/bg_menu.gif
和/res
是源文件夹,然后是
/Background/bg_menu.gif
应该位于类路径的根目录中。因此,您可以使用
访问它image = ImageIO.read(getClass().getResourceAsStream("/Background/bg_menu.gif"));
注意领先/
。 The rules for the path are explained in the javadoc.
如果这不起作用,那么您的应用程序无法使用Netbeans正确构建。检查部署。