Java Swing-jComboBox未刷新

Java Swing-jComboBox未刷新,java,swing,jcombobox,Java,Swing,Jcombobox,我有一个问题,我的jComboBox没有反映模型中的更改 在这个模型中,我有一个Box类,它保存了项的数组列表。我有一个组合框模型是这样定义的: myCombo.setModel(new javax.swing.DefaultComboBoxModel(box.items().toArray())); (我使用NetBeans“设计”模式)。据我所知,以这种方式设置模型后,组合框应该反映项列表中的任何更改,并且在应用程序开始时,它确实正确地显示了项列表的元素 private void

我有一个问题,我的jComboBox没有反映模型中的更改

在这个模型中,我有一个
Box
类,它保存了
项的数组列表。我有一个组合框模型是这样定义的:

myCombo.setModel(new javax.swing.DefaultComboBoxModel(box.items().toArray()));
(我使用NetBeans“设计”模式)。据我所知,以这种方式设置模型后,组合框应该反映
列表中的任何更改,并且在应用程序开始时,它确实正确地显示了
列表的元素

    private void buttonAddActionPerformed(java.awt.event.ActionEvent evt) {                                                   
    box.addRandomItem();
}      
我还有一个添加按钮,用于将
项目的随机实例添加到
项目列表中

    private void buttonAddActionPerformed(java.awt.event.ActionEvent evt) {                                                   
    box.addRandomItem();
}      

方法
addRandomItem()
只是将
Item
的一些新实例添加到
items
列表中。因此,当我单击Add按钮时,新的随机项被正确地添加到
列表中(我可以看到它在控制台上打印出来),但是在GUI级别,组合框中的列表没有被更新,因此我看不到其中新添加的项

您应该使用
addElement(E元素)
insertElementAt(E元素,int索引)
将新项目手动添加到模型中

在内部,
DefaultComboBoxModel
会复制您在构造函数中作为参数提供的项,因此无法知道原始数组已更改