NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos ...
Transcript of NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos ...
![Page 1: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/1.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS
JTree
1
![Page 2: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/2.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda
• ¿Qué es?
• Conceptos
• Creación de un JTree
• Personalización de un JTree
• Selección de nodos
• Actualización dinámica del árbol
• Visualización de un archivo XML mediante un JTree
2
![Page 3: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/3.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
¿Qué es?
• Componente gráfico SWING
• Clase para desplegar un conjunto de datos de manera jerárquica
3
![Page 4: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/4.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda
• ¿Qué es?
• Conceptos
• Creación de un JTree
• Personalización de un JTree
• Selección de nodos
• Actualización dinámica del árbol
• Visualización de un archivo XML mediante un JTree
4
![Page 5: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/5.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos
5
La información se despliega de manera vertical
Cada fila es un nodo
Tiene una raíz
Una rama tiene uno o más hijos
Una hoja no tiene hijos
![Page 6: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/6.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
• TreePath:• Camino a un nodo
• Encapsula un nodo y todos sus antecesores
• “./Root/Numbers/One”
Conceptos
6
![Page 7: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/7.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
• Un nodo colapsado oculta sus hijos.
• Un nodo escondido está debajo de un ancestro colapsado.
Conceptos
7
![Page 8: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/8.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos
• Un nodo expandido no es una hoja y se identifica mediante: TreeModel.isLeaf(node)retornando false
8
![Page 9: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/9.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos
• Todos los nodos padres visibles están expandidos, pero pueden o no estar desplegados.
• Un nodo desplegado es un nodo visible y está en el área de visualización
9
![Page 10: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/10.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos
• Métodos de JTree para saber si el nodo está desplegado:
• isRootVisible()
• setRootVisible()
• scrollPathToVisible()
• scrollRowToVisible()
• getVisibleRowCount()
• setVisibleRowCount()
10
![Page 11: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/11.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos
• Métodos de JTree para saber si el nodo es visible (bajo un nodo expandido):
• isVisible()
• makeVisible()
11
![Page 12: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/12.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos
• Los nodos del árbol son objetos de la clase DefaultMutableTreeNode
• Implementan la interfaz TreeNode
12
![Page 13: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/13.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos13
JTree
Representación física sobre la pantalla
Modelo
getModel( )
Clase: DefaultTreeModelInterfaz: TreeModel
![Page 14: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/14.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Conceptos14
JTree
Representación física sobre la pantalla
Modelo
Un cambio en el Modelo,genera un evento que haceque el JTree realice lasactualizaciones necesarias enla representación visible delárbol.
![Page 15: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/15.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda
• ¿Qué es?
• Conceptos
• Creación de un JTree
• Personalización de un JTree
• Selección de nodos
• Actualización dinámica del árbol
• Visualización de un archivo XML mediante un JTree
15
![Page 16: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/16.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree
• Se declara como un atributo en la clase del panel que va a incluir el árbol.
16
![Page 17: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/17.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree
• Se crea el nodo raíz (raiz) en el método constructor
17
![Page 18: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/18.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree• Se crea el árbol a partir de la raíz previamente creada en el método constructor.
18
![Page 19: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/19.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree
• Se crea un JScrollPane y se asocia al árbol en el método constructor.
19
![Page 20: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/20.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree
• Resultado:
20
![Page 21: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/21.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree
• Creación de los demás nodos en el constructor
21
![Page 22: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/22.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree• Se crean variables para los nuevos nodos
22
![Page 23: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/23.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree• Se crea un nodo “Categoría” y se agrega a la raíz del
árbol.
23
![Page 24: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/24.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree• Se crea un nodo “Libro” y se agrega a la “Categoría”
24
![Page 25: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/25.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree• ¿Qué hay en el constructor de un nodo?
25
Raíz del árbol
Nodo “categoria”: es hijo directo de la raíz del árbol
Nodo “libro”: es hijo de un nodo categoria
Objetos de la claseObject
![Page 26: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/26.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree
• ¿Qué hay en el constructor de un nodo?
26
Raíz del árbol
String
![Page 27: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/27.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree
• ¿Qué hay en el constructor de un nodo?
27
Nodo “categoria”: es hijo directo de la raíz del árbolString
![Page 28: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/28.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree
• ¿Qué hay en el constructor de un nodo?
28
Nodo “libro”: es hijo de un nodo categoria
Libro se
muestra según el método toString()
![Page 29: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/29.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Creación de un JTree
• Resultado:
29
Nodos “Categoría”
Raíz del árbol
Nodos “Libro”
![Page 30: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/30.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda
• ¿Qué es?
• Conceptos
• Creación de un JTree
• Personalización de un JTree
• Selección de nodos
• Actualización dinámica del árbol
• Visualización de un archivo XML mediante un JTree
30
![Page 31: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/31.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Personalización
• Diferentes estilos de presentación
31
Estilo Java (por defecto) Estilo Windows
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
![Page 32: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/32.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Personalización• Los íconos personalizados se definen en el constructor del panel que contiene el JTree
32
![Page 33: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/33.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda
• ¿Qué es?
• Conceptos
• Creación de un JTree
• Personalización de un JTree
• Selección de nodos
• Actualización dinámica del árbol
• Visualización de un archivo XML mediante un JTree
33
![Page 34: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/34.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Selección de nodos
• Para expandir o colapsar los nodos de un JTree no necesario programar nada, Java lo hace solo.
34
![Page 35: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/35.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Selección de nodos
• Tratar el evento de selección de nodos:
• Si al seleccionar un nodo se quiere hacer algo más que expandir o colapsar, hay que programarlo.
35
![Page 36: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/36.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Selección de nodos
• Tratar el evento de selección de nodos: • Hay que habilitar al panel para que “oiga” los eventos de
selección del árbol.
36
![Page 37: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/37.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Selección de nodos
• Tratar el evento de selección de nodos:
• Decir al árbol que es el panel el que va a recibir el evento.
37
![Page 38: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/38.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Selección de nodos
• Tratar el evento de selección de nodos: • Implementar en el panel el método
valueChanged()
38
![Page 39: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/39.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Selección de nodos• Resulta:
39
![Page 40: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/40.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda
• ¿Qué es?
• Conceptos
• Creación de un JTree
• Personalización de un JTree
• Selección de nodos
• Actualización dinámica del árbol
• Visualización de un archivo XML mediante un JTree
40
![Page 41: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/41.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Actualización dinámica del árbol
41
JTree
Representación física sobre la pantalla
Modelo
Un cambio en el Modelo,genera un evento que hace queel JTree realice lasactualizaciones necesarias en larepresentación visible del árbol.
Clase: DefaultTreeModelInterfaz: TreeModel
![Page 42: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/42.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Actualización dinámica del árbol
• Se pueden invocar métodos sobre el modelo (DefaultTreeModel) para modificarlo:
• insertNodeInto(MutableTreeNode
newChild, MutableTreeNode parent,
int index)
• removeNodeFromParent(MutableTreeNo
de node)
• nodeRoot(TreeNode node)
• Es necesario crear un DefaultTreeModelpropio, con su propio listener.
42
![Page 43: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/43.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Actualización dinámica del árbol• Creación de un DefaultTreeModel propio
43
![Page 44: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/44.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Actualización dinámica del árbol• Este modelo debe tener su propio listener para detectar cuándo se modifica
44
![Page 45: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/45.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Actualización dinámica del árbol• El JTree se crea usando nuestro propio modelo
45
![Page 46: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/46.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Actualización dinámica del árbol• Sobre este modelo es posible efectuar cambios dinámicamente
46
![Page 47: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/47.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Actualización dinámica del árbol
• Resultado:
47
![Page 48: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/48.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
• Ejemplo:
• ¿Qué es?
Actualización dinámica del árbol
48
Este modelo debe tener su propio listener para detectar cuándo se modifica
![Page 49: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/49.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
• Ejemplo:
• Una clase propia que implementa la interfaz TreeModelListener.
49
Este modelo debe tener su propio listener para detectar cuándo se modifica
![Page 50: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/50.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
• Ejemplo de TreeModelListener propio:
50
Es necesario implementar TODOS los métodos de la interfaz, aunque sean vacíos
![Page 51: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/51.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
• Ejemplo de TreeModelListener propio:
51
Respuesta a la modificación de un nodo
![Page 52: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/52.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
• Ejemplo de TreeModelListener propio:
52
Respuesta a la inserción de un nuevo nodo
![Page 53: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/53.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
• Ejemplo de TreeModelListener propio:
53
Respuesta a la eliminación de un nodo
![Page 54: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/54.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
• Ejemplo de TreeModelListener propio:
54
Respuesta a la modificación de la estructura del árbol
![Page 55: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/55.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
• Ejemplo de TreeModelListener propio:• Nuevo método treeNodesChanged(TreeModelEvent e)
55
![Page 56: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/56.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Actualización dinámica del árbol
• Clase TreeModelEvent:
56
![Page 57: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/57.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Actualización dinámica del árbol
• Resultado
57
![Page 58: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/58.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Actualización dinámica del árbol
• Crear Modelos de Datos
• ¿Qué estructura jerárquica con su propio modelo de datos hemos visto?
• ¿Se podría usar un JTree para visualizarla?
58
![Page 59: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/59.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda
• ¿Qué es?
• Conceptos
• Creación de un JTree
• Personalización de un JTree
• Selección de nodos
• Actualización dinámica del árbol
• Visualización de un archivo XML mediante un JTree
59
![Page 60: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/60.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Ejemplo: Visualizar un XML
60
![Page 61: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/61.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Ejemplo: Visualizar un XML
• Este ejemplo permite visualizar los nodos DOM resultantes de cargar el archivo XML donde persistía la clase Números (vista en la presentación de XML).
61
<?xml version="1.0" encoding="UTF-8" ?> <numeros nombre="Ejemplo1">
<numero>10</numero> <numero>23</numero> <numero>195</numero> <numero>4</numero> <numero>888</numero>
</numeros>
![Page 62: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/62.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Nueva clase que implementa TreeModel:
• Se declara una referencia al documento XML
62
![Page 63: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/63.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Nueva clase que implementa TreeModel:
• Se declara la colección de listeners del Modelo
63
![Page 64: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/64.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Nueva clase que implementa TreeModel:
• Se declara un atributo booleano que informa si el nodo está comprimido o no.
64
![Page 65: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/65.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• En el constructor se carga el archivo XML en un árbol de nodos DOM
65
![Page 66: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/66.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Se lee el archivo
66
![Page 67: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/67.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Saca el XML completo y lo parsea utilizando DOM
67
![Page 68: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/68.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Nueva clase que implementa TreeModel:
• Esta nueva clase DEBE implementar TODOS los métodos de la interfaz TreeModel
68
![Page 69: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/69.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• El método getRoot() retorna el nodo documento del árbol DOM
• El método isLeaf(Object aNode) indica si el nodo del parámetro es hoja
69
![Page 70: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/70.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• NodoDOM es una nueva clase para personalizar un nodo DOM ().
70
![Page 71: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/71.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• La nueva clase NodoDOM contiene un atributo de tipo Node
71
![Page 72: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/72.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Métodos toString() de la clase NodoDOM:
• Retorna el texto a deplegar en el árbol
72
![Page 73: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/73.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Más métodos de la clase ModeloArbolDOM
73
![Page 74: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/74.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Métodos para agregar y eliminar listeners al modelo
74
![Page 75: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/75.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Métodos para notificar los cambios a los listeners
75
Demás métodos en el ejemplo …
![Page 76: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/76.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree• Por último…
• En el panel donde se va a visualizar el árbol con el XML se crea el JTree
76
public class PanelArbol extends JPanel
{
private JTree arbol;
public PanelArbol( )
{
DefaultMutableTreeNode top = new DefaultMutableTreeNode( "No se ha cargado nada" );
arbol = new JTree( top );
this.add( arbol, BorderLayout.CENTER );
}
public void actualizar( DomTreeModel modelo )
{
arbol.setModel( modelo );
}
}
![Page 77: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/77.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Visualización de un archivo XML mediante un JTree
• Creación del modelo desde la clase de la ventana principal
77
public void cargarArbol( )
{
try
{
//Seleccionar el archivo
JFileChooser fc = new JFileChooser( "./data/" );
fc.setDialogTitle( "Seleccionar XML a desplegar" );
int resultado = fc.showOpenDialog( this );
if( resultado == JFileChooser.APPROVE_OPTION )
{
File archivoCadena = fc.getSelectedFile( );
//Se crea el modelo
DomTreeModel modelo = new DomTreeModel( archivoCadena.getPath()
);
panelArbol.actualizar( modelo );
}
} ...
![Page 78: NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS · 2018. 7. 19. · ISIS1206 –Estructuras de Datos NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS JTree 1](https://reader036.fdocument.pub/reader036/viewer/2022081907/60160b3bd2a0df30332b413f/html5/thumbnails/78.jpg)
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Referencias
• http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html
• http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPDOM6.html
78