У меня есть JTree, JTable и JList, которые отображают один и тот же набор объектов, но в другом порядке и с различной информацией. Если элемент выбран из одного из Компонентов, я хочу выбрать тот же объект на двух других Компонентах (то есть они должны быть выделены). Естественно, я отслеживаю события выбора с помощью слушателя. Вот проблема, когда компонент извлекает выбранный объект, я должен убедиться, что объект выбран в других компонентах, вызывая методы выбора для них. Это затем уведомит слушателей выбора о двух других компонентах. Но каждое из этих событий, в свою очередь, будет вызывать события выбора для компонентов, отличных от самого себя, вызывая бесконечный цикл, проходящий между тремя компонентами.
Я вижу одно решение - использовать логический флаг, и заставить слушателей не распространять выбор, если флаг установлен. Однако это кажется громоздким и не элегантным. Есть ли способ просто сказать JTree, JTable и JList сделать выбор, но не запускать какие-либо события (в отличие от запуска события, а затем его перехвата и остановки с логическим флагом)?