运行Java代码时出错
我正在尝试学习Java,并创建了一个GUI表单,它最终将看起来像一个Yahtzee记分表。目前,它拥有所有字段,但当我尝试运行它时,会出现以下错误:运行Java代码时出错,java,Java,我正在尝试学习Java,并创建了一个GUI表单,它最终将看起来像一个Yahtzee记分表。目前,它拥有所有字段,但当我尝试运行它时,会出现以下错误: Exception in thread "main" java.lang.NullPointerException at java.awt.Container.addImpl(Unknown Source) at java.awt.Container.add(Unknown Source) at javax.swing.JF
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at javax.swing.JFrame.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at Board.<init>(FiveDice.java:97)
at FiveDice.main(FiveDice.java:9)
第97行是你的问题。BonusB为空,因此无法添加:
add(BonusB);
堆栈跟踪告诉您
的97行(类构造函数)正在抛出NullPointerException
。检查这条线,你会得到你的答案:你在这行上传递了错误:在板上。(FivEdEIC.java:97)< /C>。你知道什么是<代码> Null PoExtExeals< /Cube >,什么时候发生?一般来说,你不应该在C、C++或java中使用名字为变量名的大写字母。类名称保留LeadingUpperCase,变量名称使用leadingLowerCase。正如您在上面看到的,格式化程序认为LeadingUpperCase名称是类名,您的许多读者也是如此。尝试调用super()作为起始od Board构造函数,但它只是一个空JTextField,就像编译器正在接受的许多其他字段一样。另外,当我删除它时,下一行也会发生同样的事情。这发生在以下任一行和所有行上:添加(l_小计b);加(小计b);添加(l_BonusB);添加(BonusB);加上(总数);加(总计);事实上,现在它只发生在BonusB线上。我不明白JTextField有什么不同,我弄明白了。那是个打字错误。我必须输入一个名为BonusT的字段,而没有一个名为Bonubs。感谢您的帮助。您必须先创建JTextField对象,然后才能将其添加到JFrame中:BonusB=new JTextField();添加(BonusB);
add(BonusB);