1

当用户选择已在JComboBox.

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

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

我试图通过setSelectedItem(Object)在模型中添加一个检查来实现这一点。然而这并没有奏效。

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

但是,鉴于文档contentsChanged(ListDataEvent),我犹豫是否要覆盖它。因此,我对你们所有人的问题:

有没有更好的方法来获得这种不需要子类化和JComboBox覆盖它的功能的所需功能?setSelectedItem(Object)contentsChanged(ListDataEvent)

4

1 回答 1

2

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

  • 使用ItemListener

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

  • 例如

于 2013-07-10T11:56:11.867 回答