2016-05-19 12 views
4

このコードがあり、jcomboboxから選択した項目を取得したいのですが、プロジェクトを実行すると、選択した項目の値とjava.Lang.NullPointerExceptionが重複して表示されます ここにコード:jcomboboxの選択項目の取得

private void jComboBox4ItemStateChanged(java.awt.event.ItemEvent evt) {            
     // TODO add your handling code here: 
     if (evt.getStateChange()==ItemEvent.SELECTED){ 

      String a=String.valueOf(jComboBox4.getSelectedItem()); 
     System.out.print(a); 

     try{ 
     String del2="select distinct PTYPE from Projects inner join project on projects.PNUMBER=(select pro_id from project where pro_name='"+a+"')"; 
     psst=con.prepareStatement(del2); 
     String td2; 
      DefaultComboBoxModel mode2 = new DefaultComboBoxModel(); 
      ResultSet rss=psst.executeQuery(); 
      while(rss.next()){ 
      td2=rss.getString("PTYPE"); 
    mode2.addElement(td2); 
     jComboBox7.setModel(mode2); 
      } 
    } 
     catch(SQLException ex){ 
      JOptionPane.showMessageDialog(null, ex.toString()); 
} 
} 
+0

は、念のために印刷 '「<" + a + ">」'のように、あなたはA' '周りのテキストを追加しようとしたことがありますか? –

+0

あなたのインデントと閉じ括弧で何かが良く見えません。 'if(evt.getStateChange()== ItemEvent.SELECTED)'節はどこで終了するのですか?どこでNullPointerExceptionを取得しますか? –

答えて

2

このコードはitemStateChanged()メソッド内にあるものとします。 2回目の理由は、新しい値を選択したり、古い値を選択解除したりするためです。

あなたのコードは次のようになります:

myCombo.addItemListener(new ItemListener() { 
     @Override 
     public void itemStateChanged(ItemEvent e) { 
      if(e.getStateChange() == ItemEvent.SELECTED) { 
       String a=jcombobox.getselecteditem().toString(); 
       System.out.print(a); 
      } 
     } 
    }); 
+0

ええ..あなたの右のコードはitemstatechange..doにあります。あなたが言ったようにこのコードをウィットする必要がありますか、私は自分のコードを変更する必要がありますか? – user6309713

+0

重要なのは、print()メソッドを 'SELECT'イベントのためだけに呼び出すことです。それは一度だけ印刷されます。 –

+0

これで私には:java.lang.nullpointerexception – user6309713

関連する問題