【问题标题】:JComboBox event for when value is changed by choosing a new value from the drop-down lost通过从下拉列表中选择新值更改值时的 JComboBox 事件丢失
【发布时间】:2017-01-24 16:25:59
【问题描述】:

我有一个表单类型的应用程序,其中我使用的 JComboBox 代表客户的头衔(先生/夫人/女士/等)。我想在组合框由于用户单击它以打开下拉列表而更改值时触发一个事件,然后选择一个新值。我还在左侧面板中有客户的姓名。单击客户端的名称会将 JComboBox 更改为为该客户端存储的值,但我不想在组合框的值以这种方式更改时触发事件。

ActionListener 和 ItemChangeListener 都会触发这两种情况的事件

来自 MouseListener 的 MousePressed 方法将在单击 JComboBox 时触发事件,但在单击 JComboBox 旁边的箭头时不会触发。此外,无论组合框中的选定项是否发生变化,都会触发 MousePressed 事件。

【问题讨论】:

    标签: java swing jcombobox


    【解决方案1】:

    在客户端名称更改时触发事件之前,请先移除 ItemChangeListener,然后再将其添加回来。这样它就会“跳过”通知

    【讨论】:

    • 但是我什么时候加回来,我想过用mouslistener来加回来,但是点击组合框箭头不会触发它
    • 在调用后立即将其添加回来以在 JComboBox 上设置 selectedItem
    猜你喜欢
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多