-1

我正在尝试这段代码(在 Netbeans 中),我总是得到一长串错误(这里只有第一行)

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at FootballFrame.jComboBox1ActionPerformed(FootballFrame.java:64
at FootballFrame.access$000(FootballFrame.java:3)
at FootballFrame$1.actionPerformed(FootballFrame.java:29)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1260)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:588)
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:624)
at Javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:835)

...

代码如下:

  private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) 
  {                                          
      String support = (String)jComboBox1.getSelectedItem();
      league.setLeagueName(support);
  }    

方法league.setLeagueName(String aName) 在外面完美地工作......我真的不明白

4

1 回答 1

3

ANullPointerException表示您正在尝试对对象做某事null。在上面的代码中,可能导致问题的三件事:

  • jComboBox1可能null
  • 的结果jComboBox1.getSelectedItem()可能是null(尽管这可能不会导致错误;它可能只是将值设置为null并稍后失败)
  • league可能null

因此,要找出是哪一个,您可以使用调试器,也可以将代码更改为以下内容:

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) 
{                       
    System.out.println("jComboBox1 : " + jComboBox1);                   
    String support = (String)jComboBox1.getSelectedItem();
    System.out.println("support : " + support);
    System.out.println("league : " + league);
    league.setLeagueName(support);
}   

查看打印了哪个(或多个)打印语句null,然后从那里开始计算我们如何解决问题。

如果您选择使用调试器(您可能应该学习如何使用),您可以保留原始代码,然后在方法的第一行添加断点。然后,在调试模式下运行您的应用程序并查看变量。单步执行代码,看看是什么null以及为什么。

于 2013-03-17T18:04:19.500 回答