-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

Aは、オブジェクトに対してNullPointerException何かをしようとしていることを意味します。null上記のコードでは、問題を引き起こしている可能性のある3つのことがあります。

  • 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 に答える