我的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级别,组合框中的列表未更新,因此我无法在其中看到新添加的项目。
答案 0 :(得分:2)
您应该使用addElement(E element)
或insertElementAt(E element, int index)
手动将新项目添加到模型中。
在内部,DefaultComboBoxModel
复制了您在构造函数中作为参数提供的项目,因此无法知道原始数组是否已更改。