我有一个基于滑块值向Web服务器发出命令的GUI。其中一些滑块在Web服务器上“耦合”,因此更改其中一个滑块也可能会改变另一个滑块。该耦合是通过Web服务器返回基于发出的命令设置的值列表完成的。避免“耦合”JSliders中的不必要事件和无限循环?
因此,我可以根据此响应轻松设置合适的滑块,但问题是这样做会导致ChangeListener被触发,然后再次向Web服务器发出命令。理想情况下,“耦合”应该表现良好,避免无限循环,但这是一个潜在的问题,并且发送所有这些额外的事件似乎是不必要的。
这两种方案我能想到的是:
- 暂时删除听众,改变的值,然后将其放回。
- 添加一个“手动”标志,让听众知道它应该忽略更改。
这些对我来说都不是理想的解决方案,但是其中一个比另一个“更好”?还是有没有第三个解决方案,我不考虑?
在这个解决方案中出现意外行为的可能性(来自设置/取消设置标志的问题)仍然关系到我一点,但它似乎是最好的解决方案。 – 2010-04-14 15:48:29