【问题标题】:how to add elements in jcombobox dynamically?如何在 jcombobox 中动态添加元素?
【发布时间】:2014-02-08 05:54:11
【问题描述】:
jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

我想知道,如何在运行时在组合框中添加元素?

【问题讨论】:

  • 这可能会有所帮助:bit.ly/1g5kmzH
  • @failed.down 然后这个页面出现了.... :D

标签: java swing jcombobox comboboxmodel


【解决方案1】:

"我想知道,如何在运行时在comboBox中添加元素?"

DefaultComboBoxModel#addElement

  • public void addElement(E anObject)

从界面复制的描述:MutableComboBoxModel
在模型末尾添加一个项目。此方法的实现应通知所有已注册的 ListDataListener 该项目已添加。

在您的情况下,由于您没有参考模型,因此您需要这样做

DefaultComboBoxModel model = (DefaultComboBoxModel)jComboBox2.getModel();
model.addElement(...)

看看How to Use ComboBoxes


还要学习阅读文档。只需转到Here,您就可以搜索DefaultComboBoxModel 或任何其他您不熟悉的课程。

【讨论】:

  • 也可以在这里查看教程 --> docs.oracle.com/javase/tutorial/uiswing/components/…
  • +1 note == 用于在运行时添加项目最好使用 MutableComboBoxModel,正如 @developer 在回答中所建议的那样,称为 Insar (+1)
  • 此解决方案引发未经检查的警告
【解决方案2】:

我猜Answer 对你有帮助。

我从那个答案中复制了这个。

如果您的组合框有MutableComboBoxModel,您可以执行以下操作

MutableComboBoxModel model = (MutableComboBoxModel)combo.getModel();
model.addElement( elementToAdd );

这相当于调用JComboBox#addItem(实现见下文):

public void addItem(Object anObject) {
    checkMutableComboBoxModel();
    ((MutableComboBoxModel)dataModel).addElement(anObject);
}

但我认为如果您想在模型端进行更改,而不是通过视图(除了为用户提供在视图中编辑的能力),直接修改模型是最佳实践

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2015-05-18
    • 2019-06-24
    • 2014-10-15
    相关资源
    最近更新 更多