-2

Javaで画像を描画しようとしています。画像を保存するためだけに別のクラスを作成する前は、これは機能していました。しかし今、私はNullポインター例外を受け取ります。

メインクラス:

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;
}
4

1 に答える 1

4

あなたの問題はここにあります:

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 のコメントに注意してください。これは特にメソッドの命名が重要です。

于 2012-12-03T19:19:53.403 に答える