Java列表侦听器抛出空指针错误,尽管能够访问数组
这是列表组件的侦听器。当人们选择它时,我会得到一个空指针错误,但我仍然能够从数组中获得所需的信息。问题是每次我单击列表项时,编译器仍然会抛出一个空指针事件。如何在阵列仍抛出此错误的情况下正确访问阵列? 类facebookListListener实现ActionListener{Java列表侦听器抛出空指针错误,尽管能够访问数组,java,if-statement,compare,awt,Java,If Statement,Compare,Awt,这是列表组件的侦听器。当人们选择它时,我会得到一个空指针错误,但我仍然能够从数组中获得所需的信息。问题是每次我单击列表项时,编译器仍然会抛出一个空指针事件。如何在阵列仍抛出此错误的情况下正确访问阵列? 类facebookListListener实现ActionListener{ @Override public void actionPerformed(ActionEvent e) { moodSetter.setEnabled(true)
@Override
public void actionPerformed(ActionEvent e) {
moodSetter.setEnabled(true);
String name = thePeople[facebookList.getSelectedIndex()].getName();
String mood = thePeople[facebookList.getSelectedIndex()].getMood();
Color lightGrey = new Color(160,160,160);
if(mood == null){
thePersonsMood.setText("default_mood");
thePersonsMood.setBackground(lightGrey);
}
if(mood.equalsIgnoreCase("happy")){
thePersonsMood.setText(name+"'s mood is " + mood);
thePersonsMood.setBackground(Color.RED);
}else{
thePersonsMood.setText(name+"'s mood is " + mood);
thePersonsMood.setBackground(lightGrey);
}
}
}
啊,改变这个,
}
if(mood.equalsIgnoreCase("happy")){
为此:
} else // **** note the else!!!
if(mood.equalsIgnoreCase("happy")){
否则,即使if(mood==null)
测试为真,您也将进入if块。啊,更改此项:
}
if(mood.equalsIgnoreCase("happy")){
为此:
} else // **** note the else!!!
if(mood.equalsIgnoreCase("happy")){
否则,即使if(mood==null)
测试为真,您也将进入if块。啊,更改此项:
}
if(mood.equalsIgnoreCase("happy")){
为此:
} else // **** note the else!!!
if(mood.equalsIgnoreCase("happy")){
否则,即使if(mood==null)
测试为真,您也将进入if块。啊,更改此项:
}
if(mood.equalsIgnoreCase("happy")){
为此:
} else // **** note the else!!!
if(mood.equalsIgnoreCase("happy")){
否则,即使
if(mood==null)
测试为真,您也会进入if块。上面代码中的哪一行抛出了您的NPE?最重要的是,您需要学习如何调试NPE(NullPointerException)的一般概念。您应该仔细检查抛出它的行,找出哪个变量为null,然后追溯到您的代码中以了解原因。相信我,您会一次又一次地遇到这些问题。欢迎使用堆栈溢出!实际上,一个堆栈溢出将涉及更少的猜测工作和更好的响应。此外,编译器不会抛出NPEIt,即107(mood.equalsIgnoreCase(“happy”){]@user3558462我想现在你有了这些信息,问题是显而易见的。上面代码中的哪一行抛出了你的NPE?最重要的是,你需要学习如何调试NPE(NullPointerException)的一般概念。您应该仔细检查抛出它的行,找出哪个变量为null,然后追溯到您的代码中以了解原因。相信我,您会一次又一次地遇到这些问题。欢迎使用堆栈溢出!实际上,一个堆栈溢出将涉及更少的猜测工作和更好的响应。此外,编译器不会抛出NPEIt,即107(mood.equalsIgnoreCase(“happy”){]@user3558462我想现在你有了这些信息,问题是显而易见的。上面代码中的哪一行抛出了你的NPE?最重要的是,你需要学习如何调试NPE(NullPointerException)的一般概念。您应该仔细检查抛出它的行,找出哪个变量为null,然后追溯到您的代码中以了解原因。相信我,您会一次又一次地遇到这些问题。欢迎使用堆栈溢出!实际上,一个堆栈溢出将涉及更少的猜测工作和更好的响应。此外,编译器不会抛出NPEIt,即107(mood.equalsIgnoreCase(“happy”){]@user3558462我想现在你有了这些信息,问题是显而易见的。上面代码中的哪一行抛出了你的NPE?最重要的是,你需要学习如何调试NPE(NullPointerException)的一般概念。您应该仔细检查抛出它的行,找出哪个变量为null,然后追溯到您的代码中以了解原因。相信我,您会一次又一次地遇到这些问题。欢迎使用堆栈溢出!实际上,一个堆栈溢出将涉及更少的猜测工作和更好的响应。此外,编译器不会抛出NPEIt,即107(mood.equalsIgnoreCase(“happy”){]@user3558462我想既然你有了这些信息,问题就显而易见了。