我的jComboBox出现问题,无法反映模型中的更改...
在模型中,我有Box
类,该类保留Item
的数组列表。我有这样定义的组合框模型:
myCombo.setModel(new javax.swing.DefaultComboBoxModel(box.items().toArray()));
(我使用NetBeans的“设计”模式)。据我了解,以这种方式设置模型后,组合框应反映
items
列表中的所有更改,并且在应用程序开始时,它的确正确显示了item
列表中的元素。我还有一个按钮Add,将
Item
的随机实例添加到items
列表。 private void buttonAddActionPerformed(java.awt.event.ActionEvent evt) {
box.addRandomItem();
}
方法
addRandomItem()
只是将Item
的一些新实例添加到items
列表中。因此,当我单击“添加”按钮时,新的随机项已正确添加到items
列表中(我可以在控制台上看到它的打印内容),但是在GUI级别,组合框中的列表没有被更新,因此我看不到新添加的项目。 最佳答案
您应该使用addElement(E element)
或insertElementAt(E element, int index)
将新项目手动添加到模型中。
在内部,DefaultComboBoxModel
会复制您作为构造函数中的参数提供的项目,因此无法知道原始数组已更改。
关于java - Java Swing-jComboBox不刷新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44436031/