Java Swing - jComboBox没有刷新

时间:2017-06-08 12:38:38

标签: java swing jcombobox

我的jComboBox问题没有反映模型中的变化......

在模型中,我有Box类,它保留Item的数组列表。我有这样定义的组合框模型:

myCombo.setModel(new javax.swing.DefaultComboBoxModel(box.items().toArray()));

(我使用NetBeans的“设计”模式)。所以据我所知,在以这种方式设置模型之后,组合框应该反映items列表中的任何更改,并且在应用程序的开头,它确实正确地显示了item列表的元素。

我还有一个按钮添加,可以将Item的随机实例添加到items列表中。

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

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

1 个答案:

答案 0 :(得分:2)

您应该使用addElement(E element)insertElementAt(E element, int index)手动将新项目添加到模型中。

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