Java 空指针异常JLabel

Java 空指针异常JLabel,java,nullpointerexception,jlabel,Java,Nullpointerexception,Jlabel,当我尝试在标签上运行此操作时,为什么会出现NullPointerException: JLabel player1CurrentScore = new JLabel("" + matchPlay.returnPL1GamesWon(), JLabel.CENTER); 是因为我不能像这样连接两个字符串吗 理想情况下,我会尝试将标签设置为球员的分数,以便在需要时正确增加 以下是我的异常堆栈转储: java.lang.

当我尝试在标签上运行此操作时,为什么会出现NullPointerException:

JLabel player1CurrentScore = new JLabel("" + matchPlay.returnPL1GamesWon(),
                                        JLabel.CENTER);
是因为我不能像这样连接两个字符串吗

理想情况下,我会尝试将标签设置为球员的分数,以便在需要时正确增加

以下是我的异常堆栈转储:

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)
java.lang.NullPointerException
在GUI.makeFrame(GUI.java:71)
在GUI上。(GUI.java:28)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
在bluej.runtime.ExecServer$3.run(ExecServer.java:808)

除非matchPlay为null或matchPlay,否则没有任何东西会导致空指针异常。returnPL1GamesWon()本身会引发空指针异常


更新:基于异常来自GUI.makeFrame这一事实,我必须问一下您是否真的有图形显示?这是命令行应用程序、Swing应用程序还是小程序?看起来您正在尝试在没有图形上下文的情况下创建JLabel。

除非matchPlay为null或matchPlay,否则没有任何东西会导致null指针异常。returnPL1GamesWon()本身会引发null指针异常


更新:基于异常来自GUI.makeFrame这一事实,我必须问一下您是否真的有图形显示?这是命令行应用程序、Swing应用程序还是小程序?看起来您正在尝试创建一个没有图形上下文的JLabel。

基于问题中的信息:参考matchPlay为空


更新:给定matchPlay不能为null的信息,那么在matchPlay上调用的方法必须抛出异常。检查上一个方法调用的堆栈跟踪,应该有助于查明问题。

根据问题中的信息:参考matchPlay为null


更新:给定matchPlay不能为null的信息,那么在matchPlay上调用的方法必须抛出异常。检查上一个方法调用的堆栈跟踪,应该有助于查明问题。

我已经设法回答了这个问题

这是我在构造函数中分配字段的顺序

抱歉打扰了


谢谢大家

我已经设法回答了

这是我在构造函数中分配字段的顺序

抱歉打扰了


谢谢大家

我想如果matchPlay.returnPL1GamesWon()返回null,它只会打印“null”,而不会抛出null点异常?是的,Brabster说的。但是,matchPlay.returnPL1GamesWon()本身可能会引发NullPointerException。如果我知道如何使用此网站,我会准确地发布错误消息,但我确实在上面留下了一条评论,说明这不可能possible@Roberto,您应该可以编辑您的问题-只需单击“编辑”我想如果matchPlay.returnPL1GamesWon()返回null,它只会打印“null”,而不会抛出NullPointerException?是的,正如Brabster所说。但是,matchPlay.returnPL1GamesWon()本身可能会引发NullPointerException。如果我知道如何使用此网站,我会准确地发布错误消息,但我确实在上面留下了一条评论,说明这不可能possible@Roberto,您应该可以编辑您的问题-只需单击“编辑”旁边的按钮:如果matchPlay.returnPL1GamesWon()是数字,那么在最近的JVM中更好的方法是String.valueOf(matchPlay.returnPL1GamesWon())并避免“+”将数字“字符串化”。正如其他人所说,NullPointerException必须来自matchPlay为null的情况。旁白:如果matchPlay.returnPL1GamesWon()是数字,那么在最近的JVM中更好的方法是String.valueOf(matchPlay.returnPL1GamesWon())并避免“+”将数字“字符串化”。正如其他人所说,NullPointerException必须是来自matchPlay的null。这不可能是因为matchPlay的其他一些方法正在工作,我有以下私有游戏matchPlay matchPlay=new Game(),那么它怎么可能是null?啊。你没那么说。在这种情况下,请参见下面的@Paul Tomblin的答案。这不可能是因为matchPlay中的其他一些方法正在工作,我有以下私人游戏matchPlay matchPlay=new Game(),那么它怎么可能为空?啊。你没那么说。在这种情况下,请参见下面的@Paul Tomblin的答案。