gpt4 book ai didi

java - 更新 Swing DefaultComboBoxModel

转载 作者:行者123 更新时间:2023-12-01 04:54:09 24 4
gpt4 key购买 nike

我正在尝试使用该代码段更新名为“mdlCategory”的 DefaultComboBoxModel。

private void categoriesUpdate(String categoryName, boolean addElement) {

if (!categoryName.equals("")) {

if (addElement) {//that block works propertly
Category c = new Category(-1);
c.setName(categoryName);
mdlCategory.addElement(c);
selAllergenCategory.setSelectedItem(c);
} else {//not works!!
Category cat = (Category) mdlCategories.getSelectedItem();
cat.setName(categoryName);
selAllergenCategory.setSelectedItem(cat);
}
}
}

当addElement为true时,新类别将以正确的方式添加到模型中。

我在“else” block 中遇到问题...当尝试更新从 DefaultComboBoxModel 获取它的类别时,模型不会以正确的方式更改,甚至删除并再次添加它,尽管当我将光标移过时组合,改变发生但不会持续。

我是否以错误的方式更新模型的类别对象?

最佳答案

您应该将模型的更改告知 Swing。在 if block 中,它使 mdlCategory.addElement(c);。对于 else-block 你应该调用 setElementAt:

} else {//not works!!
Category cat = (Category) mdlCategories.getSelectedItem();
int idx = mdlCategories.indexOf(cat);
cat.setName(categoryName);
mdlCategory.setElementAt(cat, idx);
selAllergenCategory.setSelectedItem(cat);
}

可能不需要最后一行(selAllergenCategory.setSelectedItem(cat);)

关于java - 更新 Swing DefaultComboBoxModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14440911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com