Vermeiden Sie unnötige Ereignisse und Endlosschleifen in "gekoppelten" JSliders?

Ich habe eine grafische Benutzeroberfläche, die basierend auf Schiebereglerwerten Befehle an einen Webserver ausgibt. Einige dieser Schieberegler sind auf dem Webserver "gekoppelt", sodass durch Ändern eines dieser Schieberegler möglicherweise auch ein anderer geändert wird. Die Kopplung wird vom Webserver durchgeführt, der eine Liste der Werte zurückgibt, die auf der Grundlage des ausgegebenen Befehls festgelegt wurden.

So kann ich leicht die entsprechenden Schieberegler basierend auf dieser Antwort einstellen, aber das Problem ist, dass dadurch der ChangeListener ausgelöst wird und dann erneut ein Befehl an den Webserver gesendet wird. Idealerweise sollte sich die "Kopplung" gut verhalten und Endlosschleifen vermeiden, aber das ist ein potenzielles Problem und das Senden all dieser zusätzlichen Ereignisse scheint unnöti

ie beiden Lösungen, die ich mir vorstellen konnte, ware

Zeitweiliges Entfernen der Listener, Ändern des Werts und anschließendes Zurücksetzen.Fügen Sie ein "manuelles" Flag hinzu, um den Listener zu informieren, dass die Änderung ignoriert werden soll.

Keiner von beiden scheint mir die ideale Lösung zu sein, aber ist einer von ihnen "besser" als der andere? Oder gibt es eine dritte Lösung, die ich nicht in Betracht ziehe?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage