Я хотел бы, чтобы несколько JTree
(все с очень похожим содержимым) синхронизировали выбранные узлы (когда один и тот же узел существует в каждом дереве).
На данный момент я делаю это, добавляя TreeSelectionListener
к каждому дереву и вызывая setSelectedPath
для других деревьев (если getSelectedPaths
не содержит пути).
Однако я видел, что это приводит к бесконечным циклам, когда каждое дерево многократно выбирает разные узлы (я не уверен, как это воспроизвести, но я видел это при перетаскивании узлов).
Кажется, нет способа установить выбранный путь без запуска прослушивателя выбора дерева, и я бы предпочел не идти по пути, пытаясь удалить прослушиватели.
Я рассматриваю возможность разделения TreeSelectionModel
между деревьями, но это похоже на большую работу, учитывая размер DefaultTreeSelectionModel
.
Есть ли другие способы добиться того же результата?