Java列表侦听器抛出空指针错误,尽管能够访问数组

Java列表侦听器抛出空指针错误,尽管能够访问数组,java,if-statement,compare,awt,Java,If Statement,Compare,Awt,这是列表组件的侦听器。当人们选择它时,我会得到一个空指针错误,但我仍然能够从数组中获得所需的信息。问题是每次我单击列表项时,编译器仍然会抛出一个空指针事件。如何在阵列仍抛出此错误的情况下正确访问阵列? 类facebookListListener实现ActionListener{ @Override public void actionPerformed(ActionEvent e) { moodSetter.setEnabled(true)

这是列表组件的侦听器。当人们选择它时,我会得到一个空指针错误,但我仍然能够从数组中获得所需的信息。问题是每次我单击列表项时,编译器仍然会抛出一个空指针事件。如何在阵列仍抛出此错误的情况下正确访问阵列? 类facebookListListener实现ActionListener{

        @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我想既然你有了这些信息,问题就显而易见了。