gpt4 book ai didi

java - 制作 GImage 时出现 NullPointerException

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:43 25 4
gpt4 key购买 nike

所以这是我的代码的一部分,抛出 NullPointerException:

public class PuzzleGame extends GraphicsProgram implements KeyListener{
private ArrayList <PuzzleImage> list = new ArrayList <PuzzleImage>();
private PuzzleImage _11=null;

public static void main(String[] args) {
PuzzleGame game= new PuzzleGame();
game.setup(); //NullPointerException here
game.addKeyListener(game);
}

private void setup(){
BufferedImage img11 = null;
try {
img11 = ImageIO.read(new File("C://part11.png"));
} catch (IOException e) {
}
PuzzleImage _11=new PuzzleImage(img11,2,2,2,2); //NullPointerException here
list.add(_11);
}
}

这是 PuzzleImage 类

public class PuzzleImage extends GImage {
public PuzzleImage(Image img, double x1, double y1, double realX, double realY) {
super(img, x1, y1); //NullPointerException here
x=x1;
y=y1;
}
private double x;
private double y;
private double realX;
private double realY;
}

所以我确保C 上有名为part11.png 的文件,所以我猜测路径应该是正确的。现在我真的不知道这段代码有什么问题,但是我对 java 很陌生,所以很可能有一些我不知道或没有见过的东西。也许你们中的一些人可以看一下,看看是否能找到什么?谢谢。

已解决:事实证明,在我添加的 12 张图像中,这一张只是 .jpg,而不是 .png。我想时间已经很晚了,抱歉打扰你们了。

最佳答案

setup() 中的 img11 很可能为 null,因为您有一个 try catch block 围绕其赋值。如果您的代码收到 IOException,您的代码不会中断,但 img11 也不会被分配任何值并继续保持为 null。

尝试打印出有关错误的消息,以验证您是否收到 IO 异常。

因此将您的代码更改为这样的内容...

private void setup(){
BufferedImage img11 = null;
try {
img11 = ImageIO.read(new File("C://part11.png"));
} catch (IOException e) {
e.printStackTrace() //ADD THIS LINE
}
PuzzleImage _11=new PuzzleImage(img11,2,2,2,2); //NullPointerException here
list.add(_11);
}

如果您看到打印的错误消息,您就会知道问题很可能与 img11 有关。

另外,我猜测您正在使用以下 JDK API http://docs.oracle.com/javase/6/docs/api/javax/imageio/ImageIO.html#read(java.io.File) 中的 ImageIO.read(FIle) 方法,它明确指出如果输入为 null,则会抛出错误...

read

public static BufferedImage read(File input) throws IOException

Parameters: input - a File to read from. Returns: a BufferedImage containing the decoded contents of the input, or null.

Throws: IllegalArgumentException - if input is null. IOException - if an error occurs during reading.

关于java - 制作 GImage 时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15183565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com