从Java中的Graphics.drawImage获取NullPointerException
在这个示例的最后一行调用drawImage()时,我得到了一个NullPointerException,尽管我没有给它一个null变量。我们将不胜感激从Java中的Graphics.drawImage获取NullPointerException,java,graphics,nullpointerexception,drawimage,Java,Graphics,Nullpointerexception,Drawimage,在这个示例的最后一行调用drawImage()时,我得到了一个NullPointerException,尽管我没有给它一个null变量。我们将不胜感激 BufferedImage image = null; System.out.println(image); try { image = ImageIO.read(getClass().getResource("/gameobjects/diaz.jpg")); System.out.p
BufferedImage image = null;
System.out.println(image);
try {
image = ImageIO.read(getClass().getResource("/gameobjects/diaz.jpg"));
System.out.println("eter");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(image);
Graphics g = mainPanel.getGraphics();
g.drawImage(image, 50, 50, null);
和堆栈跟踪:
null
eter
BufferedImage@6a5f6303: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@1c5d9084 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 384 height = 216 #numDataElements 3 dataOff[0] = 2
Exception in thread "main" java.lang.NullPointerException
at Main.<init>(Main.java:41)
at Main.main(Main.java:17)
null
计量器
BufferedImage@6a5f6303:type=5 ColorModel:#pixelBits=24 numComponents=3 color space=java.awt.color.ICC_ColorSpace@1c5d9084透明度=1有alpha=false isAlphaPre=false ByteInterlevedRaster:width=384 height=216 35; numDataElements 3 dataOff[0]=2
线程“main”java.lang.NullPointerException中出现异常
在Main(Main.java:41)
Main.Main(Main.java:17)
我认为您需要将“/gameobjects/diaz.jpg”
更改为“gameobjects/diaz.jpg”
而不带前导“/”。如果是这样,那是因为相对资源路径与绝对资源路径相比。“/”指定绝对,因此它正在寻找C:/game…(在windows上)请指出哪一行是Main.java
的第41行,而不是/game…请指出。我们需要查看您的Main方法。我认为是图形“g”为null——异常不是来自drawImage方法,而是来自您的方法。请测试“g”是否为null。getGraphics
可能返回null
。如果是,请参阅第4行1是我给出的示例中的最后一行。这不应该是问题的原因。如果它导致image
为null
,则可能会导致NullPointerException
内的某个地方出现drawImage
,而不是在调用drawImage
的行上。另外,你对提问者做出了毫无根据的假设的目录设置和环境。