gpt4 book ai didi

java - 有没有办法在调用 setSelectedItem() 时阻止 Action 监听器触发?

转载 作者:搜寻专家 更新时间:2023-11-01 03:42:49 24 4
gpt4 key购买 nike

我有一个包含多个组合框的程序,每个组合框都有自己的 Action 监听器。从任一组合框中选择一项将更改一个或多个其他组合框中的项目。我遇到的问题是,为一个组合框调用 setSelectedItem() 会触发另一个组合框的 Action 监听器,这反过来会触发其他组合框的 Action 监听器,等等。

有没有办法避免这种情况,要么只允许从用户输入中触发 Action 监听器,要么检测到 Action 不是从用户输入中触发的?说不使用 setSelectedItem() 不是一个选项,因为我希望程序能够为每个组合框设置当前选定的项目。在此先感谢您的帮助。

最佳答案

我认为这是不可能的。如果您在组合框上设置 actionlistener,则 actionPerformed() 将始终在组合框上生成任何事件时调用。它不检查事件是由用户还是通过程序产生的。

但是你可以在你的组合框上设置mouselistner,这样只有当你点击你的组合框时,才会执行指定的操作。

另一种方法是为此设置标志以检查事件是由用户还是通过程序生成。

但我更喜欢在组合框上设置 mouselistener 的第一种技术。

关于java - 有没有办法在调用 setSelectedItem() 时阻止 Action 监听器触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10407676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com