Java 为什么我的代码中会出现NullPointerException?

Java 为什么我的代码中会出现NullPointerException?,java,swing,nullpointerexception,Java,Swing,Nullpointerexception,每次尝试使用另一个类运行代码时,我都会得到一个NullPointerException 有些人能不运行它就通读一遍吗?因为你需要这些照片。我只想知道我是否做错了什么,因为这给了我一个例外 我真的需要帮助,我不知道该怎么办,我试过很多方法 堆栈跟踪 BurgerMakerPanel.java topBreadPicture为空且未初始化 topBreadPicture.setIcon(icon1); topBreadPicture为空且未初始化 topBreadPicture.setIcon(

每次尝试使用另一个类运行代码时,我都会得到一个
NullPointerException

有些人能不运行它就通读一遍吗?因为你需要这些照片。我只想知道我是否做错了什么,因为这给了我一个例外

我真的需要帮助,我不知道该怎么办,我试过很多方法

堆栈跟踪 BurgerMakerPanel.java
topBreadPicture
为空且未初始化

topBreadPicture.setIcon(icon1); 

topBreadPicture
为空且未初始化

topBreadPicture.setIcon(icon1); 
tbl.updateLabel(breadStrings[breadList.getSelectedIndex()])

如果未选择任何内容,则breadList.getSelectedIndex()可以为-1

所以breadStrings[-1]将返回null,因此尝试传递null参数

但可能是错的

在传入参数之前,首先检查您作为参数输入的内容仍然是一种很好的做法。

tbl.updateLabel(breadStrings[breadList.getSelectedIndex())

如果未选择任何内容,则breadList.getSelectedIndex()可以为-1

所以breadStrings[-1]将返回null,因此尝试传递null参数

但可能是错的


在传递参数之前,最好先检查您作为参数输入的内容。

标签(如
vegiepicture
等)已声明,但从未实例化


至于图像,最好将它们声明为类属性,并在添加标签的同时加载它们。在加载图像时,使用
ImageIO.read(文件/URL)
而不是使用
ImageIcon
加载图像。如果找不到图像,前者将抛出异常,而后者(AFAIR)将简单地返回
null
图像。

声明了
vegiepicture
等标签,但从未实例化

  JComboBox ceb1 = (JComboBox)e.getSource();
  String ingredientName1 = (String)ceb1.getSelectedItem();
  updateLabel(ingredientName1);
至于图像,最好将它们声明为类属性,并在添加标签的同时加载它们。在加载图像时,使用
ImageIO.read(文件/URL)
而不是使用
ImageIcon
加载图像。如果找不到图像,前者将抛出异常,而后者(AFAIR)将简单地返回
null
图像

  JComboBox ceb1 = (JComboBox)e.getSource();
  String ingredientName1 = (String)ceb1.getSelectedItem();
  updateLabel(ingredientName1);
在调用getSelectedItem()之前,ceb1可能为null


在调用getSelectedItem()之前,ceb1有可能为null

ImageIcon icon5=新的ImageIcon(name+“.png”); vegiepicture.setIcon(图标5)


veggiePicture从不初始化。

ImageIcon图标5=新的ImageIcon(名称+“.png”); vegiepicture.setIcon(图标5)


veggiePicture从不初始化。

告诉我们哪一行得到了异常,可能是完整的异常回溯可以发布空指针异常的堆栈跟踪吗?java.lang.NullPointerException位于BurgerMakerPanel$TopBreadListener.updateLabel(BurgerMakerPanel.java:174)位于BurgerMakerPanel。(BurgerMakerPanel.java:40)sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)sun.reflect.NativeMethodAccessorImpl.invoke(未知源)sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)java.lang.reflect.Method.invoke(未知源)位于edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:271)
ImageIcon icon1=newimageicon(name+“.png”)错误的图标名称?告诉我们哪一行得到了异常,可能是完整的异常回溯可以发布空指针异常的堆栈跟踪吗?java.lang.NullPointerException在BurgerMakerPanel$TopBreadListener.updateLabel(BurgerMakerPanel.java:174)在BurgerMakerPanel.(BurgerMakerPanel.java:40)在BurgerMaker.main(BurgerMaker.java:10)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(未知源)在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)在java.lang.reflect.Method.invoke(未知源)在edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:271)
ImageIcon icon1=new ImageIcon(name+“.png”);
错误的图标名称?我认为图标名称错误,因此它没有初始化。不要猜,它是。OP从未初始化它。我认为图标名称错误,因此它没有初始化。不要猜,它是。OP从未初始化它。
breadStrings[-1]
将抛出
ArrayIndexOutOfBoundsException
-1
不是有效的数组索引。
breadStrings[-1]
将抛出
ArrayIndexOutOfBoundsException
-1
不是有效的数组索引。
  JComboBox ceb1 = (JComboBox)e.getSource();
  String ingredientName1 = (String)ceb1.getSelectedItem();
  updateLabel(ingredientName1);