【发布时间】:2011-09-19 16:01:25
【问题描述】:
我有一个带有一组项目(例如组合框和文本字段)的 JPanel。在这些项目上实现了一些动作侦听器来注册用户更新。
如果用户在 JComboBox 中选择了一个值(例如),则操作侦听器会捕获该事件。调用相应的底层 bean 方法并刷新面板。更改可能会影响窗格中显示的其他字段。
问题是,当面板刷新时,所有的监听器都被触发了,他们自己调用刷新。这会导致无限循环。
我怎样才能避免这种情况?我无法摆脱监听器,因为我需要捕获用户更新,但我不希望它们在我只刷新面板内容时触发。
【问题讨论】:
-
请将 JPane 修改为 JPanel,对于从 JComboBox 到 GUI 的任何输出,最好查找 ItemListener 并注意仅测试特定事件,您是否能够侦听 JComboBox 的弹出窗口,请检查这个论坛是一些很好的话题
标签: java swing refresh infinite-loop