有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java阻止当前选择的选择通知JComboBox中的侦听器

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

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

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

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

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

然而,考虑到contentsChanged(ListDataEvent)的文档,我不太愿意重写它。因此,我向你们所有人提出一个问题:

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


共 (1) 个答案

  1. # 1 楼答案

    I would like to prevent an action event from being fired when a user selects a value already selected in a JComboBox.

    • 使用ItemListener

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

    • for example