Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > TreeModel versus DefaultTreeModel

Saludos,

Me gustaría saber si merece la pena escribir una implementación de TreeModel desde cero en lugar de usar DefaultTreeModel. Generalmente las clases Default<Interface> suelen funcionar bien para cosas muy simples pero se quedan cortas con cierta facilidad y, o te vas a las Abstract<Interface>, o implementas la interfaz desde cero.

En cambio, después de leer How to Use Trees en el tutorial de Java y de buscar un poco, no acabo de encontrar una limitación clara de DefaultTreeModel (aparte de que sus nodos tienen que implementar TreeNode). ¿Realmente es tan versátil?

En mi caso, los datos saldrán de una base de datos mediante JPA y la idea es cargarlos una sola vez a medida que se necesite. O sea, se cargan los primeros hijos de la raíz y, a medida que despliegas un nodo no-hoja, quiero que el evento fuerce la carga de sus hijos inmediatos (simplemente recorriendo la lista de hijos directos del objeto tras el nodo y añadiéndolos como descendientes del TreeNode), de manera que, salvo que el usuario corra mucho, :-) cada vez que despliegue un nodo todos estén ya en memoria. ¿Veis alguna dificultad en hacer eso con DefaultTreeModel y DefaultMutableTreeNode?

Por otra parte, no es que las interfaces (TreeModel, TreeNode y MutableTreeNode) parezcan demasiado largas de implementar, pero he visto tantísimos métodos en las implementaciones por defecto que me asusta que al final tenga que proporcionar muchos de esos métodos para el uso práctico, aunque no estén en la interfaz. Cualquier comentario al respecto de vuestras experiencias pasadas se agradece. :-)

La aplicación es monousuario, por lo que no me preocupa mucho la posibilidad de que los datos varíen una vez visualizado el árbol en memoria (la jerarquía en árbol se actualiza en un proceso de usuario separado).

marzo 18, 2015 | Registered Commenterrickiees

Los modelos de JTree son realmente complejos de implementar.
Usa DefaultTreeModel sin más.

marzo 18, 2015 | Registered Commenterchoces