NullPointerException - Fehler beheben, nur, wo liegt er?

Marco7757

Aktives Mitglied
Hallo Freunde. Ich versuche meinen JPanels, die in einem Array gespeichert sind, eine neue Hintergrundefarbe zuzuweisen. Doch so recht will das nicht funktionieren.
Ich bekomme die Meldung
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
bei folgendem Code:
Java:
if(panels_set==true) {
			for(int i=0;i<50;i++) {
				card[i].setBackground(Color.yellow);
			}
		}

card ist ein Array des Typs JPanel mit 50 Panels.

Was bedeutet denn nun die Fehlermeldung genau und wie kann ich den Fehler beheben?
 

Marco7757

Aktives Mitglied
Code:
System.out.println(card.length);
ergibt genau 50!

Der Code mit der null-Abfrage wird NICHT ausgeführt, das heisst, card ist nicht leer!
Java:
if(card==null) { System.out.println("test"); }

Instanziierung:
Java:
cards[z] = new card();
				card[z] = cards[z].add_card(z, x, y, setted_numbers);

Die Methode add_card(); gibt ein JPanel zurück! z ist ein Zähler der von 0 auf 49 zählt.
 

nrg

Top Contributor
ja klar ist card nicht leer, weil das dein array mit der länge 50 ist. aber ist card[0], card[1] .... gefüllt mit Objecten der Klasse JPanel?

edit: was gibt den if (card[0] == null) zurück?
bzw zeig doch einfach mal weng mehr Code :). so können wir noch paar Stunden rätseln
 
Zuletzt bearbeitet:
S

SlaterB

Gast
> Die Methode add_card(); gibt ein JPanel zurück!

tja, aber vielleicht null?
du brauchst nicht deinen Code verteidigen, dass ein Fehler drin ist, ist so gewiss wie die Weite des Universums,
die Fehlermeldung kommt nicht aus Spass ;)
 

punkt21

Mitglied
Java:
JPanel[] cardz = new JPanel[50];
		for (int i = 0; i < cardz.length; i++) {
			cardz[i] = new JPanel();
		}

So erzeugst du dein Array von Panels, die auch alle initialisiert sind.
danach müsstes du deinen code verwenden können
 

Marco7757

Aktives Mitglied
^^

Also, card[0] gibt auch kein 0 zurück.

Hier die Klasse card:
Java:
public class card {
	public int index;
	public int value;
	public int x;
	public int y;
	private int[] possible = new int[10];
	public int[] pos2 = new int[10];
	
	public void setValues() {
		possible[1] = 5;
		possible[2] = 6;
		possible[3] = 6;
		possible[4] = 6;
		possible[5] = 6;
		possible[6] = 6;
		possible[7] = 5;
		possible[8] = 5;
		possible[9] = 4;
	}

	public JPanel add_card(int i, int x, int y, int[] settedNumbers) {
		setValues();
		this.index = i;
		this.value = (int) (Math.random()*9+1);
		while(settedNumbers[value]>=possible[value]) {
			this.value = (int) (Math.random()*9+1);
		}
		settedNumbers[value]++;
		setArray(settedNumbers);
		this.x = x;
		this.y = y;
		
		return createJPanel(this.value);
	}
	
	public int[] getSettedNumbers() {
		return pos2;
	}
	
	public void setArray(int[] array) {
		for(int i=0;i<array.length;i++) {
			pos2[i] = array[i];
		}
	}
	
	private JPanel createJPanel(int i) {
		GridBagLayout gbl      = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		gbc.anchor             = GridBagConstraints.CENTER;

		final JPanel panel = new JPanel(gbl);
		panel.setSize(75, 75);
		panel.setBorder(BorderFactory.createLineBorder(Color.black));
		panel.setBackground(Color.yellow);
		JLabel label = new JLabel(""+i);
		gbl.setConstraints(label,gbc);
		panel.add(label);
		
		return panel;
	}

}

Es wird hier ein Panel mit einer Zahl in ihm erstellt. Wichtig sind eigentlich nur die beiden Methoden add_card() und createJPanel(). Der Rest ist nur eine Hilfe, damit die beiden Hauptmethoden nicht zu unübersichtlich werden. getSettedNumbers() dient nur dazu, der anderen Klasse mitzuteilen, welche Nummern schon in ein Panel gesetzt wurde ...
 
S

SlaterB

Gast
von welchem Typ ist card[]?

wie kannst du einmal sowohl card als auch JPanel darin speichern
(cards[z] = new card(); card[z] = cards[z].add_card)
-> spricht für Object[] (edit: ok, selbst mit Object[] würde der Aufruf nicht gehen,
nochmal edit: jetzt sehe ich auch die unterschiedlichen Namen der Arrays ;) )

als auch an anderer Stelle card.setBackground aufrufen -> spricht für JPanel[]?

es liegt nahe, dass du zwei unterschiedliche Arrays hast, eines gefüllt, das andere leer

ansonsten erkennt man aus dieser Konfusion, wie unendlich wichtig ein komplett geposteter Code von der main-Methode bis zum letzten Detail ist,
lange Methoden wie createJPanel(int i) kann man dabei tatsächlich temporär auf
> return new JPanel();
oder so vereinfachen
 
Zuletzt bearbeitet von einem Moderator:

nrg

Top Contributor
von welchem Typ ist card[]?

card ist vom typ JPanel und cards vom Typ card. Ich versteh allerdings anhand von der class card net was du bis vorhast/machst. Post mal den kompletten Code aber es wäre schön, wenn du vorher Deklarationen lt den Richtlinien für Groß-und Kleinschreibung änderst. (Klassen Groß etc)

edit die 3te :oops:: card ist vom Typ JPanel, cardz auch und cards vom Typ card...
Also die Deklarationen sind echt ein grauß...
 
Zuletzt bearbeitet:
S

SlaterB

Gast
um auch mal wieder was richtiges zu sagen:
immerhin kam cardz erst von punkt21 rein, da ist Marco7757 nicht schuld dran ;)
 

Marco7757

Aktives Mitglied
Hey Leute
:oops:

Tut mir leid, dass meine Namen so verwirrend sind. Das kommt, wenn man einfach drauflosprogrammiert und sich zu anfang noch gar nicht im klaren ist, was es alles braucht ...
Ich werde in Zukunft die Namensgebungsvorgaben beachten.

Ich habe jetzt den Fehler gefunden. Es lag daran, dass ich ich 50 Panel aufrufen wollte, jedoch nur 49 existierten. Eine Schleife beim erstellen der Panels lief einmal zu wenig durch ... Das Ganze funktioniert jetzt. Vielen Dank für die Hilfe.

Ich dachte nur, wenn ich meinen ganzen Code hier reinposte, wird es noch unübersichtlicher als es eh schon ist. Aber ich werde das in Zukunft machen und den Code auf das wesentliche Kürzen!

Nocheinmal vielen Dank für die Hilfe!
 

nrg

Top Contributor
für die Zukunft setzte einfach mal Ausgaben an die Stelle, wo es eine Exception wirft und gebe da auch Informationen zur Schleife aus.
Java:
        	if (card[i] == null) System.out.println("card[" + i + "] ist NULL!");

oder mit Assertions
Java:
        	assert (card[i] != null): "card[" + i + "] ist NULL!";
Dann aber mit java -ea Klasse ausführen.

Oder einfach "step-by-step" Debuggen in einer IDE wie Eclipse oder Netbeans.

grüße
nrg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
D Java Fehler: NullPointerException Java Basics - Anfänger-Themen 1
S Fehler: "java.lang.NullPointerException" Java Basics - Anfänger-Themen 6
R NullPointerException ,wo liegt der Fehler? Java Basics - Anfänger-Themen 2
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
F NullPointerException Fehler... Java Basics - Anfänger-Themen 6
K NullPointerException Fehler ? Java Basics - Anfänger-Themen 5
S java.lang.NullPointerException Fehler bei Umrechnung Java Basics - Anfänger-Themen 3
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
C Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 10
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
berserkerdq2 Nullpointerexception, obwohl ich Array initialisiere? Java Basics - Anfänger-Themen 1
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
Jose05 Nullpointerexception Java Basics - Anfänger-Themen 7
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
H Java NullPointerException Java Basics - Anfänger-Themen 4
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
L Threads Komischer NullPointerException Java Basics - Anfänger-Themen 2
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
Avalon NullPointerException beim Mocken Java Basics - Anfänger-Themen 6
D NullPointerException in foreach loop Java Basics - Anfänger-Themen 1
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
D NullPointerException im Array Java Basics - Anfänger-Themen 4
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
V NullPointerException Java Basics - Anfänger-Themen 2
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
scratchy1 NullPointerException Java Basics - Anfänger-Themen 19
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
F Wie kann ich diese NullPointerException umgehen?! Java Basics - Anfänger-Themen 41
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
W Optional<T> - NullPointerException Java Basics - Anfänger-Themen 37
Jascha NullPointerException vs NumberFormatException Java Basics - Anfänger-Themen 5
L Variablen NullPointerException bei Dateigröße (Nr.1) Java Basics - Anfänger-Themen 4
M Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 13
D NullPointerException umgehen Java Basics - Anfänger-Themen 17
Z Objekt Array führt zum NullPointerException Java Basics - Anfänger-Themen 2
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
W ArrayList NullPointerException Java Basics - Anfänger-Themen 4
A NullPointerException Java Basics - Anfänger-Themen 6
S NullPointerException Java Basics - Anfänger-Themen 4
T OOP Wörterbuch NullPointerException Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
O NullPointerException Java Basics - Anfänger-Themen 2
M Interpreter-Fehler Feld NullPointerException Java Basics - Anfänger-Themen 4
L Variablen Unerklärliche NullPointerException Java Basics - Anfänger-Themen 2
E Compiler-Fehler nullPointerException in verschachteltem Modell Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert Threads NullPointerException Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
kodela NullPointerException Java Basics - Anfänger-Themen 12
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
H NullPointerException obwohl Objekt angelegt wurde Java Basics - Anfänger-Themen 1
A Threads Reentrantlock | NullpointerException möglicher Deadlock? Java Basics - Anfänger-Themen 0
K Compiler-Fehler NullPointerException lösen Java Basics - Anfänger-Themen 16
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
P Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 1
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S Methoden Methode funktioniert nicht | NullPointerException Java Basics - Anfänger-Themen 6
F NullpointerException bei zweidimensionalem Array Java Basics - Anfänger-Themen 2
Z OOP - Array ständig NullPointerException Java Basics - Anfänger-Themen 4
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
T Nullpointerexception und es wird nichts angezeigt Java Basics - Anfänger-Themen 15
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
B ProcessMessage NullPointerException Java Basics - Anfänger-Themen 11
shiroX Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 9
MrSnake ItemListener mit NullPointerException Java Basics - Anfänger-Themen 3
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
M NullPointerException Java Basics - Anfänger-Themen 8
B Vererbung NullPointerException Java Basics - Anfänger-Themen 38
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
G NullPointerException Java Basics - Anfänger-Themen 1
J NullpointerException Java Basics - Anfänger-Themen 1
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
M String-Vergleich und NullPointerException Java Basics - Anfänger-Themen 4
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
X Problem mit NullPointerException Java Basics - Anfänger-Themen 2
K NullPointerException in der Hashtable Java Basics - Anfänger-Themen 4
S Interpreter-Fehler Hilfestellung bei einer NullPointerException Java Basics - Anfänger-Themen 1
S GraphNode --- Dijkstra Algorithmus : NullPointerException Java Basics - Anfänger-Themen 1
L NullPointerException Java Basics - Anfänger-Themen 11
M Nullpointerexception??? Java Basics - Anfänger-Themen 2
W NullPointerException bei DefaultListModel Java Basics - Anfänger-Themen 5
N NullPointerException bei Konsolenausgabe Java Basics - Anfänger-Themen 5
J Klasse in Klasse; NullPointerException Java Basics - Anfänger-Themen 8
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
Q NullPointerException Java Basics - Anfänger-Themen 5
H NullPointerException Java Basics - Anfänger-Themen 5
T Threads MultiThreading NullPointerException Java Basics - Anfänger-Themen 7
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
O Objekt weitergeben Meth Class NullPointerException Java Basics - Anfänger-Themen 2
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben