2009-03-16 2 views
0

Почему я получаю NullPointerException, когда я пытаюсь запустить это на этикетке:Исключение нулевого указателя JLabel

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

Это потому, что я не могу быть две строки сцепляются, как это?

В идеале, я пытаюсь установить метку в качестве оценки игрока, чтобы ее можно было правильно увеличивать по мере необходимости.

Вот мой 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

стороны: Если Matchplay. returnPL1GamesWon() является числовым, лучшим способом сделать это в последних JVM является String.valueOf (matchPlay.returnPL1GamesWon()) и избегать «+» «строзировать» число. Как и другие, NullPointerException ДОЛЖЕН быть от matchPlay равным нулю. – Eddie

ответ

3

Там нет ничего, что вызовет исключения нулевого указателя, если Matchplay не является нулевым или matchPlay.returnPL1GamesWon() генерирует исключения нулевого указателя сам.

Обновление: Исходя из того, что исключение исходит от GUI.makeFrame, я должен спросить, действительно ли у вас есть графический дисплей? Это приложение командной строки, приложение Swing или апплет? Похоже, вы пытаетесь создать JLabel без графического контекста.

+0

Я думаю, что если matchPlay.returnPL1GamesWon() возвращает null, он просто напечатает «null», а не выкинет исключение NullPointerException? – Brabster

+0

Да, что сказал Брабстер. Однако вполне возможно, что matchPlay.returnPL1GamesWon() сам бросает исключение NullPointerException. – Eddie

+0

@ Брэбстер, @ Эдди, ты прав. Исправлена ​​формулировка. –

3

На основании информации в вопросе: reference matchPlay имеет значение NULL.

Обновлено: Если информация, совпадающая сPlay, не может быть нулевой, то метод, вызываемый на matchPlay, должен вызывать исключение. Проверьте трассировку стека для предыдущего вызова метода, чтобы помочь выявить проблему.

+0

это косяк быть Тхи becuase некоторых других методов из Matchplay работает, я следующее частных игры Matchplay Matchplay = новая игра() так как это может быть пустыми? –

+0

Ах. Вы этого не сказали. В этом случае см. Ответ @Paul Tomblin ниже. – Brabster

0

я сумел ответить,

это был приказ, который я был назначение полей в конструкторе

жаль беспокоить

благодарят всех

+0

Рад, что вы это поняли! – Ascalonian

Смежные вопросы