Как динамически добавить типизированный элемент в редактируемом Jcombox к уже существующему списку ArrayList, определяющему поле со списком - PullRequest
0 голосов
/ 11 июля 2020

// Это блок кода для формы JSwing с Jcombobox на нем и имеющий ArrayList, указывающий на comboBox

        ArrayList<Chemicals> chemicals;

    /**
     * Creates new form EditChemical
     */
    public EditChemical() {
        initComponents();
        
        chemicals = new ArrayList<Chemicals>();
        populateArrayList();
        
        String[] chemicalsArray = new String[chemicals.size()];
        
        for (int i=0 ;i<chemicals.size(); i++) 
        {
            chemicalsArray[i] = chemicals.get(i).getChemName();
            
            ChemNameCombo.setModel(new javax.swing.DefaultComboBoxModel<>(chemicalsArray));
        }
        ChemNameCombo.setSelectedItem("");
    }
    
     public void populateArrayList(){
        try{
            FileInputStream file = new FileInputStream("Chemicals.vic");
             ObjectInputStream inputFile = new ObjectInputStream(file);
            
            boolean endOfFile = false;
            
            while(!endOfFile){
                try {
                    chemicals.add((Chemicals) inputFile.readObject());
                }
                catch (EOFException e){
                    endOfFile = true;
                }
                catch (Exception f){
                    JOptionPane.showMessageDialog(null, f.getMessage());
                }
            }
            inputFile.close();
            
        }
        catch(IOException e)
        {JOptionPane.showMessageDialog(null, e.getMessage());}
        
    }}

И это класс модели для ArrayList


    public class Chemicals implements Serializable {
    private String ChemName;
    private String ChemCategory;

    public Chemicals(String ChemName, String ChemCategory){
        this.ChemName = ChemName;
        this.ChemCategory = ChemCategory;
    }

    public void setChemName(String ChemName) {
        this.ChemName = ChemName;
    }

    public void setChemCategory(String ChemCategory) {
        this.ChemCategory = ChemCategory;
    }

    public String getChemName() {
        return ChemName;
    }

    public String getChemCategory() {
        return ChemCategory;
    }
    }

Я считаю, что я должен работать с частью кода ChemNameComboItemStateChanged, но я не знаю, как go об этом

Спасибо в ожидании

...