Исключение нулевого указателя при рисовании изображения?

Я пытаюсь нарисовать изображение в Java. Он работал до того, как я создал отдельный класс для хранения изображений. Но теперь я получаю исключение нулевого указателя.

Основной класс:

Image image;
Images images; // class object
public void paint(Graphics G){
    image = images.GETImage();
    G.drawImage(image, x, y, 20,20,null);
}

protected void paintComponent(Graphics G){
    paint(G);       
}

Класс изображений для хранения изображений:

public Image GETImage(){
    int direction = pacman.getDirection();
    int newDirection = pacman.getDirection();
    int x = pacman.getX();
    int y = pacman.getY();

    if(direction == Constant.UP){
        ImageIcon i = new ImageIcon("src\\images\\pacman up.png");
        image = i.getImage();

        }
    return image;
}

1 ответ

Ваша проблема здесь:

Image image;
Images images; // class object (this is never initiated in code snippet given)
public void paint(Graphics G){
    image = images.GETImage(); //images is null, thus calling any method on the object will throw NPE
    G.drawImage(image, x, y, 20,20,null);
}

ты никогда не начинаешь images таким образом, он бросит NPE.

Также, пожалуйста, обратите внимание на комментарии @HovercraftFullOfEels, это важно, особенно для названия вашего метода.

Другие вопросы по тегам