【问题标题】:Java Swing - jComboBox not refreshingJava Swing - jComboBox 不刷新
【发布时间】:2017-11-10 04:29:26
【问题描述】:

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

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

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 级别,组合框中的列表没有更新,所以我看不到其中新添加的项目。

【问题讨论】:

    标签: java swing jcombobox


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 2013-10-24
      • 2011-12-25
      • 2013-04-06
      • 2015-09-29
      相关资源
      最近更新 更多