gpt4 book ai didi

java - 当在 java 中动态添加项目时,如何避免触发 JComboBox 的 actionlistener 事件?

转载 作者:搜寻专家 更新时间:2023-11-01 01:01:44 25 4
gpt4 key购买 nike

我需要您对以下任务的建议和指导。

我有一个框架,它有两个 JComboBox,假设它们被命名为 combo1 和 combo2,一个 JTable 和其他组件。

在框架可见的初始阶段,上面的组件。 combo1 组合框填充了一些值,但在初始阶段没有选择任何值,combo2 组合框被禁用并且表格为空。

我在 combo1 和 combo2 上添加了一个 actionListener。 combo1 中有两种类型的值,假设这些值是 type1 和 type2。

条件一: 当我们从 Combo1 选择值 type1 时,将调用 combo1 的 actionListener 方法,该方法调用 combo2 保持禁用状态的方法,并将一些行添加到与从 combo1 选择的值 type1 相关的表中。

条件 2: 当我们从 combo1 选择值 type2 时,将调用 combo1 的 actionListener 方法,该方法调用一个方法,该方法使 combo2 填充与 type2 相关的一些值并被启用,但没有从 combo2 选择任何值,并且表也应该保持为空,直到我们从中选择任何值组合2。

表在每次向 combo2 添加值时,都会触发 combo2 的 Action 监听器方法。在 combo2 的 actionListener 方法中获取 combo2 的选定值,但这里没有 combo2 的选定值,这导致 NullPointerException。

那么combo2的action listner方法在给combo2加值后不执行怎么办

最佳答案

您可以在添加新元素之前删除 Action 监听器,并在完成后将其添加回去。 Swing 是单线程的,因此无需担心其他线程需要触发监听器。

您的听众也可能会检查是否选择了某些内容,如果没有,则采取适当的措施。比获得 NPE 更好。

关于java - 当在 java 中动态添加项目时,如何避免触发 JComboBox 的 actionlistener 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5258596/

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