如何将OnMouseClick侦听器添加到JComboBox弹出菜单中的选定项目?

时间:2017-12-15 19:34:01

标签: java swing combobox

我正在做一个桌面应用程序,当用户点击或选择JComboBox的特定项目(以免" SHOW.DIALOG.ITEM")触发打开的监听器时我需要它我用来配置该项目的新JDialog。 1中的代码显示了我如何使用ItemListener进行操作,并且在显示JDialog时效果很好。在我加载组合框的值的应用程序的另一部分(参见代码2)我设置为JComboBox所选值是显示对话框和诅咒的特定项,它显示对话框到用户,因为组合框有ItemListener和if()条件,但问题是在我的应用程序中我不希望在那一刻发生这种行为,我只想在用户选择时才发生组合框中的项目。这就是我尝试添加OnClickMouse侦听器而不是ItemListener的原因,因为我相信这可能会解决我的问题,但我找不到如何将鼠标侦听器添加到comboBox像我想要的那样工作(我已尝试使用addMouseListener onClick MouseAdapter,但它无法显示对话框)。如果有人更好地了解我应该如何做到这一点,或者如何向模仿所需行为的OnMouseClick添加comboBox侦听器,那将非常有用。感谢

1)在选择项目

后,向comboBox添加项目监听器<{1}}
dialog

2)设置comboBox.addItemListener(e -> { if (ItemEvent.SELECTED == e.getStateChange()) { String valueAfterSelection = e.getItem().toString(); if (valueAfterSelection.equalsIgnoreCase("SHOW.DIALOG.ITEM")) { dialog.setVisible(true); } } } 特定项目(打开对话框,我不希望在那一刻发生这种情况)

comboBox

1 个答案:

答案 0 :(得分:1)

您可以在更改选择之前始终删除侦听器:

comboBox.removeItemListener(...);
comboBox.setSelectedItem(value);
comboBox.addItemListener(...);

这意味着您需要在创建时保留对侦听器的引用,以便您可以根据需要轻松删除/添加。

相关问题