0

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");                   
            }
        }
}             

編集:スタイルを修正するだけです(コードブロック)

4

1 に答える 1

3

モデルを介してコンテンツを追加および削除する必要があります。http://docs.oracle.com/javase/7/docs/api/javax/swing/DefaultComboBoxModel.html を確認してください

于 2012-05-12T22:32:30.253 に答える