我已经创建了一个扩展JComboBox的类。该模型如下设置:jcombobox - 检查模型内容是否更改
DefaultComboBoxModel<String> readoutModel = new DefaultComboBoxModel<String>(options.toArray(new String[options.size()]));
setModel(readoutModel);
该类实现侦听器接口来侦听另一个类(myModel)的更改。这些更改可能与该组合框无关,它可能包含选择更改,并且可能包含该组合框的内容更改。
很容易改变这样的选择:
@Override
public void modelChanged() {
...
setSelectedItem(myModel.getSelectedReadOut());
}
但要改变,如果组合框的内容需要什么?我应该更换组合框模型吗?我是否必须对这些项目进行交流并将它们与myModel中的项目进行比较?我也可以从组合框模型中删除所有项目,然后从myModel中逐项添加项目? (如果只是选择更改,也会发生这种情况......)。
发布的问题和代码可能搜索Mutable/AbstractComboBoxModel。 – mKorbel 2014-09-23 08:51:13
无论你想在'Combobox'中展示它都必须来自模型。因此,如果我们需要过滤组合框中的项目,请更好地在模型中完成“过滤”,并将最终列表传递给Combobox显示屏。 – Amarnath 2014-09-23 10:24:47