我有一个表单类型的应用程序,其中我使用JComboBox来表示客户端的标题(Mr / Mrs / Ms / etc.)。我想在组合框更改值时触发事件,因为用户单击它以打开下拉列表,然后选择新值。我还在左侧面板中显示了客户端的名称。单击客户端的名称会将JComboBox更改为为该客户端存储的值,但是当组合框的值以这种方式更改时,我不想触发事件。
ActionListener和ItemChangeListener都将触发这两种情况的事件
MouseListener中的MousePressed方法将触发单击JComboBox时的事件,但不会触发单击JComboBox旁边的箭头时的事件。此外,无论组合框中的所选项是否已更改,MousePressed事件都将触发。
答案 0 :(得分:3)
在客户端名称更改时触发事件之前,请删除ItemChangeListener并在之后将其添加回来。这样它就会“跳过”通知