防止选择当前选择以通知JComboBox中的侦听器

时间:2013-07-10 11:47:05

标签: java swing events jcombobox

我想阻止在用户选择JComboBox中已选择的值时触发事件。

例如,假设我有一个JComboBox,其模型具有以下值:

当前选择的值为“Cat”。如果用户再次选择“Cat”,我想阻止听众收到通知,而“Cat”已被选中。

我尝试通过在模型中的setSelectedItem(Object)中添加一个检查来实现此功能。然而,这不起作用。

我的下一个假设是,如果我想要这个功能,我需要继承JComboBox并覆盖它的setSelectedItem(Object)contentsChanged(ListDataEvent)函数。

但鉴于contentsChanged(ListDataEvent)的文档,我对替代它犹豫不决。因此,我向大家提出的问题是:

有没有更好的方法来获得所需的功能,不需要子类JComboBox并覆盖它的setSelectedItem(Object)contentsChanged(ListDataEvent)函数?

1 个答案:

答案 0 :(得分:2)

  

我想阻止在用户触发动作事件时   选择已在JComboBox中选择的值。

  • 使用ItemListener

  • 将代码包装到if (e.getStateChange() == ItemEvent.SELECTED) {中,如Oracle教程中所述,

  • for example