2009-03-16 20 views
0

Warum erhalte ich eine Nullpointer wenn ich versuche, und dies auf einem Etikett aus:Null-Zeiger-Ausnahme JLabel

JLabel player1CurrentScore = new JLabel("" + matchPlay.returnPL1GamesWon(), 
             JLabel.CENTER); 

Ist es, weil ich nicht zwei Strings wie diese verketteten haben kann?

Im Idealfall versuche ich, das Label als die Punktzahl des Players zu setzen, so dass es korrekt und bedarfsgerecht inkrementiert werden kann.

Hier ist meine Exception STACKDUMP:

java.lang.NullPointerException 
at GUI.makeFrame(GUI.java:71) 
at GUI.<init>(GUI.java:28) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
at bluej.runtime.ExecServer$3.run(ExecServer.java:808) 
+0

Neben zuweisen: Wenn Matchplay. returnPL1GamesWon() ist numerisch, der beste Weg, dies in den letzten JVMs zu tun, ist String.valueOf (matchPlay.returnPL1GamesWon()) und um zu vermeiden, dass "+" eine Zahl "stringt". Wie andere gesagt haben, muss die NullPointerException von MatchPlay sein, das null ist. – Eddie

Antwort

3

Dort gibt es nichts, das eine Null-Zeiger-Ausnahme verursachen, es sei denn Matchplay null ist oder matchPlay.returnPL1GamesWon() wirft einen Null-Zeiger Ausnahme selbst.

Update: Basierend auf der Tatsache, dass die Ausnahme von GUI.makeFrame kommt, muss ich fragen, ob Sie tatsächlich eine grafische Anzeige haben? Ist dies eine Befehlszeilen-App, eine Swing-App oder ein Applet? Es sieht so aus, als ob Sie versuchen, ein JLabel ohne Grafikkontext zu erstellen.

+0

Ich denke, wenn matchPlay.returnPL1GamesWon() null zurückgibt, wird es nur 'Null' drucken, keine NullPointerException werfen? – Brabster

+0

Ja, was Brabster gesagt hat. Es ist jedoch möglich, dass matchPlay.returnPL1GamesWon() selbst eine NullPointerException auslöst. – Eddie

+0

@Brabster, @Eddie, du hast Recht. Die Formulierung wurde korrigiert. –

3

Basierend auf den Informationen in der Frage: Die Referenz matchPlay ist null.

Aktualisiert: Angesichts der Tatsache, dass matchPlay nicht null sein kann, muss die Methode, die bei matchPlay aufgerufen wird, die Ausnahme auslösen. Überprüfen Sie die Stack-Ablaufverfolgung für den vorherigen Methodenaufruf, um das Problem zu lokalisieren.

+0

es kann nicht sein tho becuase einige der anderen Methoden von Matchplay arbeiten, ich habe folgendes Privat Spiel Matchplay Matchplay = new Game() so wie kann es null sein? –

+0

Ah. Das hast du nicht gesagt. In diesem Fall, siehe @Paul Tomblins Antwort unten. – Brabster

0

ich es zu beantworten geschafft haben, war

es die Reihenfolge, von denen ich war Felder im Konstruktor

sorry für die Mühe

dankt allen

+0

Froh, dass du es herausgefunden hast! – Ascalonian