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有可能为nullImageIcon 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);