2012-05-12 6 views
0

Я борюсь с обновлением своего предмета в JComboBox. Когда я загружаю элемент из файла, отображение combobox правильно, однако, когда я пытался добавить или удалить элемент из элемента combobox, combobox не обновляется автоматически, он все равно остается тем же. Вот мой код Это где поместить объект COMBOBOXКак получить JComboBox обновляется автоматически?

ObjectInputStream input; 
    try { 
     // TODO add your handling code here:   
     JFileChooser openFileChooser = new JFileChooser();    
     openFileChooser.setCurrentDirectory(new File(".")); 
     if (openFileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){ 
      input = new ObjectInputStream(new FileInputStream(openFileChooser.getSelectedFile())); 
      diary = (Diary)input.readObject(); 
      jTextArea3.setText(diary.getUnitCollection().toString()); 
      input.close(); 
      //Load Unit Item 
      for (Unit u: diary.getUnitCollection()){ 
       jComboBox8.addItem(u.getUnitName()); 
       jComboBox1.addItem(u.getUnitName()); 
      } 
     }    
    } catch (ClassNotFoundException ex) { 
     Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (IOException ex) { 
     Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex); 
    } 

Это кнопка для удаления элементов с

private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
    for (int i = 0; i < diary.getUnitCollection().size(); i++){ 
      if (jComboBox8.getSelectedItem().equals(diary.getUnitCollection().get(i).getUnitName())){ 
       diary.getUnitCollection().remove(diary.getUnitCollection().get(i)); 
       jTextArea3.setText("The Unit " + jComboBox8.getSelectedItem()+ " has been removed successfully");     
      } 
     } 
}    

редактировать: просто исправить стиль (блок кода)

ответ

3

Вы должны добавить и удалите контент с помощью модели, проверьте http://docs.oracle.com/javase/7/docs/api/javax/swing/DefaultComboBoxModel.html

+1

Чтобы добавить модель в JComboBox, используйте combobox.setModel (theModel); – Martin

+0

Как загрузить элемент в модель, потому что мой элемент не исправлен, я получаю его от arraylist – babygau

+0

@TruongThanhDung: Посмотрите API, который перечисляет Мартин выше, и используйте методы, доступные для объекта DefaultComboBoxModel. 1+ Мартину. –

Смежные вопросы