# Array aus Objekten



## DarkHunter (25. Nov 2008)

Hi Ihrs,

zur Zeit sitze ich an einer Mastermind-Variante, bei der folgendes Problem auftritt:

Ich habe die Klasse SpielfeldPanel in der ein Array aus Objekten erzeugt und dann jedes dieser Objekte gezeichnet werden soll.


Mittels Debugging hab ich festgestellt, dass beim Aufruf des Konstruktors das Array spielfeld korrekt erzeugt und gefüllt wird.

Doch leider bekomme ich beim Aufrufen der paint-Methode eine NullPointerException und der Debugger zeigt mir beim Array null an...


Hier mal die betreffende Klasse:

(Button ist ein Objekt, welches einen klickbaren Kreis erstellt, der bei Klick die Farbe wechselt und sonst die methode draw enthält, um mit Hilfe der angegebenen Parameter gezeichnet werden zu können.)


```
class SpielfeldPanel extends Panel
{
	
		Button spielfeld[];

		public SpielfeldPanel()
		{
			Button spielfeld[]=new Button[4];
			
			for (int i=0;i<4;i++)
			{
				spielfeld[i]= new Button (20+20*i,20,10);
			}
			                                
		}
		
		public void paint (Graphics g)
		{
			for (int i=0;i<4;i++)
			{
				spielfeld[i].draw(g);
			}
		}
}
```


Ich hoffe, dass ihr mir verraten könnt, warum dies so ist und vorallem wie ich das Problem lösen kann, ohne das Array schon vor dem Konstruktor zu erzeugen (das funktioniert nämlich), denn ich möchte später die Größe des Arrays dynamisch halten und beim Erstellen des Spielfeldes übergeben können.


Vielen Dank schonmal im Vorraus,
DarkHunter


----------



## SlaterB (25. Nov 2008)

in Zeile 8 legst du eine lokale Variable an, während das Klassenattribut null bleibt,

schreibe
spielfeld = new Button[4]; 
statt
Button spielfeld[]=new Button[4];


----------



## DarkHunter (25. Nov 2008)

Jepp, genau das war der Fehler

Danke )


----------

