Как избежать ненужных событий и бесконечного цикла в «связанных» JSliders?

У меня есть графический интерфейс, который выдает команды веб-серверу на основе значений ползунка. Некоторые из этих ползунков «связаны» на веб-сервере, поэтому изменение одного из них может также изменить другой. Связывание выполняется веб-сервером, возвращающим список значений, которые были установлены на основе введенной команды.

Таким образом, я могу легко установить соответствующие ползунки на основе этого ответа, но проблема в том, что выполнение этого вызывает срабатывание ChangeListener, а затем на веб-сервере снова выдается команда. В идеале, «связывание» должно быть хорошим и избегать бесконечных циклов, но это является потенциальной проблемой, и посылать все эти дополнительные события кажется ненужным.

Я мог придумать два решения:

Временно удаляя слушателей, изменяя значение, а затем возвращая их обратно.Добавьте флаг «manual», чтобы слушатель знал, что он должен игнорировать изменения.

Ни один из них не кажется мне идеальным решением, но один из них "лучше", чем другой? Или есть третье решение, которое я не рассматриваю?

Ответы на вопрос(3)

Ваш ответ на вопрос