2016-05-19 3 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 + ">» 'при печати просто чтобы быть уверенным? –

+0

что-то не выглядит хорошо с вашими отступами и закрывающимися круглыми скобками. где заканчивается конец 'if (evt.getStateChange() == ItemEvent.SELECTED)'? и где вы получаете исключение NullPointerException? –

ответ

2

Я предполагаю, что у вас есть этот код внутри метода itemStateChanged(). причина, по которой вы получаете его дважды, заключается в том, что это происходит для выбора нового значения и отмены выбора старого значения.

Ваш код должен выглядеть примерно так:

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