потому что модель не знает о сложении, это происходит под ногами.Используйте методы DefaultTreeModel, чтобы выполнить вставку:
model.insertNodeInto(newNode, root, root.getChildCount())
Редактировать
TreeNode - это просто (более или менее) тупая структура данных.Как вы можете видеть в API, это не Observable, поэтому для модели, которая использует эту структуру данных, чтобы определить, не изменилось ли что-либо на узле, модель никак не может .Чтобы сообщить об этом изменении, вам нужно сделать одну из двух вещей:
- использовать методы манипуляции с узлами модели
- обновить узел и уведомить модель вручную (вызову nodeWereInserted)
Первый - предпочтительный способ (сохраняет контроль там, где он есть), второй может понадобиться в более сложных контекстах (хотя я настоятельно рекомендую никогда делать это,вот почему SwingX DefaultTreeTableModel не раскрывает их:)