NullPointerException mit blueJ

Hallo,
ich lerne seit diesem Jahr mit Bluej umzugehen (in der Schule) und wollte als Übung mal ein 4-gewinnt programmieren.
Das hat so weit auch ganz gut geklappt, allerdings funktioniert das intialisieren vom Spielfeld nicht mehr.
hier der Code der betroffenen Methode :

public void erstelleFeld(){
        for (int i=0; i<10; i++){            
            for(int j=0; j<10; j++)
            {
                feld[j]** = new SPIELWALZE(50+j*30, 300-i*30, 30, 8);
                feld[j]**.zeichne();
            }  
        }
}```
Bis gestern hat es noch geklappt, jetzt gibt BlueJ jedes mal die Fehlermeldung
"java.lang.NullPointerException
	at Test.erstelleFeld(Test.java:11)" 
aus (hier Z. 6). Ich würde mich über Hilfe freuen ^^
-Blutwurst

Hast du feld initialisiert?

dafür ist die Methode ja da :stuck_out_tongue:

Nein, die Methode füllt das feld-Array. Du hast das Array nicht initialisert, deswegen bekommst du die NullPointerException.

Hier mal mehr Code:

    private SPIELWALZE[][] feld;
    private Random zufall = new Random();
    private boolean spieler;
    public void erstelleFeld(){
        for (int i=0; i<10; i++){            
            for(int j=0; j<10; j++)
            {
                feld[j]** = new SPIELWALZE(50+j*30, 300-i*30, 30, 8);
                feld[j]**.zeichne();
            }  
        }
        spieler = true;

    }
}```

Wie gesagt, du hast feld bisher nur deklariert aber nicht initialisiert. Ändere die zweite Zeile so ab:
private SPIELWALZE[][] feld = new SPIELWALZE[10][10];
Dann hast du jetzt platz für 10x10 SPIELWALZE Instanzen.

PS:
Klassennamen schreibt man im UpperCamelCase. Ein besserer Name wäre also Spielwalze

hat funktioniert, danke :smiley:
Was mich wundert ist ,dass es vorher funktioniert hat, und ich hab nix geändert…

[QUOTE=Blutwurst]hat funktioniert, danke :smiley:
Was mich wundert ist ,dass es vorher funktioniert hat, und ich hab nix geändert…[/QUOTE]

Ich weiß aber, woran das liegt. Du kannst mit BlueJ ein Objekt der Klasse Test erstellen, dessen Objektvariable feld einen Wert zuweisen (quasi Instanziierung [Instantiierung] und Initialisierung) und (DANN) die Methode "erstelle"Feld() darauf aufrufen.

Bis auf die Benennung (bei Klassennamen UpperCamelCase, mit ae oe ue anstatt Umlauten) ist alles Top.