![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| lando1 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 30.4.2007 Репутация: нет Всего: нет |
Есть дерево с моделью.
И есть инстанс Comparable - на основе которого нужно отсортировать элементы дерева. Как это сделать? |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 10 Всего: 118 |
Надо подробности - не совсем понятен вопрос.
|
|||
|
||||
| lando1 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 30.4.2007 Репутация: нет Всего: нет |
есть дерево.
Известно, что его node - типа MyTreeNode - где есть параметр order_position Есть экземпляр Comparator - который умеет сортировать этот класс MyTreeNode по ключу order_position Нужно чтобы при добавления элемента в дерево - к какому-то узлу - он в этом узле располагался в отсортированном порядке(сортировка только по элементам этого узла) - а не в самом конце. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 10 Всего: 118 |
Так если у тебя есть order_position, то при использовании DefaultTreeModel - там есть метод
insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index) И index похоже то, что тебе надо. |
|||
|
||||
| lando1 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 30.4.2007 Репутация: нет Всего: нет |
ну почти - дело в том, что если явно указывать позицию вставки, то нужно следить что эта позиция не больше чем getChildCount() - иначе будет исключение OutOfRange. Поэтому надо или сортировать массив потенциальных node до вставки - или в процессе вставки.
Мне бы хотелось чтобы это делалось в процессе вставки. |
|||
|
||||
| lando1 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 30.4.2007 Репутация: нет Всего: нет |
Сделал след. образом - переопределил метод add(TreeNode) у DefaultMutableTreeNode - при его использовании добавил сортировку вектора children (который находится в классе DefaultMutableTreeNode). Конечно неэкономично получилось - но при малых деревьях падение производительности небольшое.
Вопрос закрыт. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |