【发布时间】:2023-04-11 07:38:02
【问题描述】:
我的程序能够更改组合框的选定项。但是我怎么知道项目更改是由人类鼠标单击项目本身还是由我的程序引起的。
我正在寻找一个可以添加到 JComboBox 项目而不是 JComboBox 本身的 MouseListener。
【问题讨论】:
-
你能给我们看一下代码吗?另外,您是否考虑过使用 ItemListener?
我的程序能够更改组合框的选定项。但是我怎么知道项目更改是由人类鼠标单击项目本身还是由我的程序引起的。
我正在寻找一个可以添加到 JComboBox 项目而不是 JComboBox 本身的 MouseListener。
【问题讨论】:
JComboBox 是一个复合 组件,强烈建议您避免使用低级侦听器,例如 MouseListener。相反,当代码选择一个项目时,为什么不禁用选择侦听器(也许您正在使用 ActionListener),然后在选择完成后重新启用它。因此,您将知道 ActionListener 的任何活动都来自用户的选择。您可以通过删除和重新添加侦听器来禁用和启用侦听器,或者使用允许侦听器仅在布尔值为真时做出反应的布尔变量。
【讨论】: