我有一個基於滑塊值向Web服務器發出命令的GUI。其中一些滑塊在Web服務器上「耦合」,因此更改其中一個滑塊也可能會改變另一個滑塊。該耦合是通過Web服務器返回基於發出的命令設置的值列表完成的。避免「耦合」JSliders中的不必要事件和無限循環?
因此,我可以根據此響應輕鬆設置合適的滑塊,但問題是這樣做會導致ChangeListener被觸發,然後再次向Web服務器發出命令。理想情況下,「耦合」應該表現良好,避免無限循環,但這是一個潛在的問題,並且發送所有這些額外的事件似乎是不必要的。
這兩種方案我能想到的是:
- 暫時刪除聽衆,改變的值,然後將其放回。
- 添加一個「手動」標誌,讓聽衆知道它應該忽略更改。
這些對我來說都不是理想的解決方案,但是其中一個比另一個「更好」?還是有沒有第三個解決方案,我不考慮?
在這個解決方案中出現意外行爲的可能性(來自設置/取消設置標誌的問題)仍然關係到我一點,但它似乎是最好的解決方案。 – 2010-04-14 15:48:29