自定义ComboBoxModel。如何正确解雇事件?

时间:2013-03-01 14:56:23

标签: java swing events combobox listener

我已经实现了自己的ComboBoxModel:

public class MyComboBoxModel extends AbstractListModel<MyType> 
                             implements ComboBoxModel<MyType> {}

现在我显然需要覆盖public void setSelectedItem(Object item),但文档说明如下:

  

此方法的实现应通知所有已注册的ListDataListeners内容已更改。

为此,我想我需要使用方法AbstractListModel.fireContentsChanged(Object, int, int)JComboBox的问题是,可以设置所选项目而不必在列表中,因此当调用setSelectedItem(Object)时,我不一定能确定相关项目的索引,因为它不需要在基础模型中。

我找到了另一个问题(https://stackoverflow.com/a/7077192)的答案,在这种情况下使用fireContentsChanged(item, -1, -1),但该人没有提供任何有关该部分代码的细节。现在我想知道,这是否是处理更改的选定项目的正确方法?

我是否应该始终使用-1作为两个索引?我是否应该尝试获取项目的真实索引,如果它实际上在模型中?或者我应该做一些完全不同的事情?

0 个答案:

没有答案