D
DarkHunter
Gast
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.)
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
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.)
Code:
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