上传图片我使用此代码
public static BufferedImage getSprite(String file,Object obj)
{
BufferedImage sprite = null;
try
{
sprite=ImageIO.read(obj.getClass().getResource(file));
}
catch(Exception e)
{
System.out.println("File doesn't exist");
}
return sprite;
}
然后
public class Grass
{
BufferedImage grass=SpriteHandler.getSprite("/Resources/grass_tile.gif",this);
public void render(Graphics g)
{
g.drawImage(grass, 0, 0, null);
}
}
当我使用Grass grass = new Grass()将其添加到Main类时
它捕获Exception in thread "Thread-2" java.lang.NullPointerException
at Game.render(Game.java:99)
at Game.run(Game.java:75)
at java.lang.Thread.run(Unknown Source)
我尝试了一切,只有当我把#34; getSprite"内部的方法"渲染(图形g)",但这样程序减速
答案 0 :(得分:0)
这是因为你的jar,其中一个JRE不包含该类的源代码。 JVM不知道抛出异常的精确行。如果.java
在jar中,则stacktrace将包含精确的行。更改完整的JDK可能会解决此问题。
render
方法有问题。尝试调试方法中使用的所有变量,以检查是否所有变量都已实例化。
public void render(Graphics g){
g.drawImage(grass, 0, 0, null);
}
检查Javadoc theres与您传递的参数没有关系,grass
可能是null
,方法无效,第四个参数是可选的。所以,我相信你的Graphics g
是空的。