Сохранение значения из JComboBox в пользовательском TreeCellEditor - PullRequest
1 голос
/ 02 марта 2012

У меня есть JTree с пользовательским TreeModel и пользовательским TreeCellEditor, отображающим (на данный момент) JComboBox через getTreeCellEditorComponent() переопределение.Дерево отображается правильно, с узлами, которые переходят в режим редактирования и отображают JComboBox, когда я нажимаю на них.

Всякий раз, когда я редактирую узел, меняю значение из раскрывающегося списка, а затем продолжаю выбирать другойузел из трех, я вижу, что TreeCellEditor cancelCellEditing() срабатывает.

Каков "правильный" способ остановить редактирование вместо его отмены, таким образом (надеюсь,?) убедиться, что модель valueForPathChanged() get сработала?

1 Ответ

2 голосов
/ 02 марта 2012

После дальнейшего изучения исходного кода я нашел ответ внутри класса JTree:

Установка JTree#setInvokesStopCellEditing(true) означает, что редактирование останавливается вместо отмены всякий раз, когда я меняю фокус с одного узла на другой.Это также означает, что мой TreeModel#valueForPathChanged() будет вызван.

...