|
|
|
Сортировка jTree
|
|||
|---|---|---|---|
|
#18+
Приветствую java-знатоков. У меня пока с этим языком программирования отношения не очень уверенные, многие вещи сразу не желают получаться. Вот, казалось бы, известная проблема - заполняется jTree Swing, узлы рисуются, их все видно, но не отсортированы. Интернет пестрит примерами, выбрал для себя более-менее понятный: Переписываю класс DefaultMutableTreeNode: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Потом в программе вот так заполняется дерево (корневой узел root со старшими узлами определены ранее): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Сортировка не работает. Подскажите, пожалуйста, что здесь не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 14:45:24 |
|
||
|
Сортировка jTree
|
|||
|---|---|---|---|
|
#18+
Родительский узел сортирует дочерние. Вот тут вы получили родительский узел и добавили в него дочерние. DefaultMutableTreeNode leafBonds = (DefaultMutableTreeNode) root.getChildAt(levelBondsTree); Но откуда нам знать что этот узел реализует TreeNodeExtra? Поменяйте в этой строке DefaultMutableTreeNode на TreeNodeExtra. Если будет ClassCastException, то вы не правильно определили узлы на уровень выше. Если исключения не будет, то ставьте breakpoint в метод insert() и смотрите пришел ли вызов туда вообще. Действительно ли отсортировались узлы нужным вам порядком после выполнения sort() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 14:58:06 |
|
||
|
Сортировка jTree
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕсли будет ClassCastException, то вы не правильно определили узлы на уровень выше. Вы совершенно правы, действительно получил ClassCastException. Не можете ли объяснить, в чем здесь неправильность, что не так с узлами верхнего уровня? И как решить проблему в этом случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 15:38:48 |
|
||
|
Сортировка jTree
|
|||
|---|---|---|---|
|
#18+
У дерева есть корень - 1й уровень. У корня есть дочерние узлы - 2й уроветь. Они у вас не реализуют сортировку. Откуда они беруться из вашего листинга не понятно. В показаном вами коде вы создаёте дочерние листья уже 3го уровня - вашего нового типа. Если вы добавите 4й уровень, то ваши узлы 3го уровня их отсортируют. А вот узлы 2го уровня не реализуют сортировку и поэтому ваш 3й уровень не отсортирован. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2013, 15:51:18 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38217416&tid=2129597]: |
0ms |
get settings: |
16ms |
get forum list: |
25ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
61ms |
get topic data: |
19ms |
get forum data: |
5ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 333ms |
| total: | 530ms |

| 0 / 0 |
