Проблема Java с методом clearselection () - PullRequest
0 голосов
/ 19 ноября 2009

В моей программе 2 дерева. Я использую метод clearselection () JTree, чтобы очистить выделение в 1 дереве, когда что-то в другом дереве выделено. Основной код выглядит примерно так: (внутри слушателя события valueChanged и дерева, в котором запущен текущий выбор)

    if ( tree == tree1 ){

        tree2.clearSelection();

    } else {

        tree1.clearSelection();

    }

Когда я выбираю в первый раз, он работает нормально. Но когда я пытаюсь выбрать из другого дерева после этого, оказывается, что метод valueChanged вызывается дважды. Любое решение?

Ответы [ 2 ]

1 голос
/ 19 ноября 2009

Вы использовали код, который я дал вам в этот вопрос ?

Это включало флаг, чтобы обойти проблему введения бесконечного цикла, и также должно игнорировать последующие события выбора, когда он обрабатывает текущий.

Кстати, учитывая, что это имеет прямое отношение к предыдущему вопросу, вам, возможно, лучше было бы просто комментировать предыдущий пост. Таким образом, весь контекст хранится в одном месте.

0 голосов
/ 19 ноября 2009

clearSelection () также запускает valueChanged, так что вам нужно обойти это, добавить флаг и не очищать выделение, когда оно истинно.

EDIT. Похоже, использовать какой-то флаг сложно. Можете ли вы использовать MouseListener вместо этого и запускать тот же код в событии mouseClicked?

...