¿Cómo construir un árbol en java

UN árbol es un componente Swing de fantasía que muestra los datos jerárquicos en forma de esquema en Java, que se refieren a los nerds como un árbol. El tipo de árbol que está probablemente más familiarizados es la estructura de directorios de la unidad de disco. Los árboles se crean a partir de la JTree clase.

Antes de que realmente puede crear un control de árbol, debe construir el árbol que muestra. La forma más sencilla de hacerlo es utilizar la DefaultMutableTreeNode clase.

los DefaultMutableTreeNode clase implementa la NodoArbol interfaz. Como resultado de ello, puede utilizar DefaultMutableTreeNode objetos para cualquiera de los métodos enumerados en esta tabla que requieren NodoArbol objetos.

Video: Como hacer un árbol java para loros

ConstructorDescripción
DefaultMutableTreeNode ()Crea un nodo de árbol vacío.
DefaultMutableTreeNode (Object
UserObject)
Crea un nodo de árbol con el objeto de usuario especificado.
MétodoDescripción
void add (niño NodoArbol)Añade un nodo hijo.
TreeNode getFirstChild ()Obtiene el primero de este nodo&niños rsquo-s.
DefaultMutableTreeNode
getNextSibling ()
Obtiene el siguiente hermano.
TreeNode getParent ()Obtiene este nodo&rsquo-s padres.
Objeto getUserObject ()Obtiene el objeto de usuario para este nodo.

los DefaultMutableTreeNode clase proporciona tres características básicas para cada nodo:

  • los objeto de usuario, que contiene los datos representados por el nodo. Se puede utilizar cualquier tipo de objetos que desea para el objeto de usuario. El control de árbol llama al usuario objeto de Encadenar método para determinar qué texto para visualizar para cada nodo. La forma más sencilla de configurar el objeto de usuario es pasarlo a través de la DefaultMutableTreeNode constructor.

  • El padre de este nodo, a menos que el nodo pasa a ser la raíz.

    Video: Tutorial de Programacion Java - 72 - JTree

  • Los hijos de este nodo, a menos que el nodo pasa a ser un nodo hoja. Se crea nodos secundarios llamando al añadir método.

los DefaultMutableTreeNode clase tiene muchos más métodos para navegar por el árbol de los que se muestran aquí. Dado un nodo raíz, sin embargo, se puede utilizar el getFirstChild y getNextSibling métodos para “pie” todo el árbol y acceder a cada nodo.

La camiseta que se construye aquí enumera programas de spin-off a partir de tres programas populares de televisión del pasado:

  • La demostración Andy Griffith, que tenía dos escisiones: Gomer Pyle, U.s.m.c., y Mayberry R.F.D.

  • Todos en la familia, que dio lugar directamente cuatro spinoffs: Los Jefferson, Maude, Gloria, y Lugar de Archie Bunker. Además, dos de estas escisiones tenían spin-off de su propia participación de las criadas: criada The Jeffersons’ se convirtió en el tema de un programa llamado Registrándose, y la doncella de Maude se convirtió en el personaje principal de Buenos tiempos.

  • Los días felices, que escindidos Mork y Mindy, Laverne y Shirley, y Joanie Loves Chachi.

Puede tener muchos enfoques para la construcción de árboles, la mayoría de las cuales implican una cierta programación recursiva. La mayoría de los programas reales que trabajan con árboles necesitan algún tipo de programación recursiva para construir el árbol.

El primer paso en la creación de un árbol está declarando una DefaultMutableTreeNode variable para cada nodo que no es un nodo hoja. Para el ejemplo de la serie de televisión, vamos a empezar con el siguiente código:

DefaultMutableTreeModel Andy, Archie, feliz, George, maude-

Estas variables pueden ser variables locales en el constructor del marco, porque después de obtener el árbol de configurar, no necesitará estas variables más. Ves por qué no es necesario variables para los nodos hoja en un momento.

A continuación, se crea el nodo raíz:

raíz DefaultMutableTreeNode = new DefaultMutableTreeNode ("Spinoffs famosos") -

Ahora, para simplificar la tarea de crear todos los demás nodos, se crea un método de ayuda llamada makeShow:

privada DefaultMutableTreeNode makeShow (String título, DefaultMutableTreeNode padre) {DefaultMutableTreeNode show-espectáculo = new DefaultMutableTreeNode (título) -parent.add (mostrar) -Retorno show-}

Este método acepta una cadena y otro nodo como parámetros, y devuelve un nodo cuyo objeto de usuario se establece en la Cuerda parámetro. El nodo devuelto también se agrega al nodo padre como un niño. De este modo se puede llamar a este método tanto para crear un nuevo nodo y colocar el nodo en el árbol.

El siguiente paso es la creación de algunos nodos. Continuando con el ejemplo, se empieza con los nodos de El Show Andy Griffith y sus spin-offs:

andy = makeShow ("El Show Andy Griffith", Raíz) -makeShow ("Gomer Pyle, U.s.m.c.", Andy) -makeShow ("Mayberry R.F.D.", Andy) -

Aquí, makeShow se llama a crear un nodo para La demostración Andy Griffith, con el nodo raíz especificado como su padre. El nodo devuelto por este método se guarda en la Andy variable. Entonces makeShow se llama dos veces para crear los programas de spin-off, esta vez especificando Andy como el nodo padre.

debido a que ni Gomer Pyle, U.s.m.c., ni Mayberry R.F.D. tenía un programa de spin-off, que no tiene que pasar estos nodos como el parámetro padre a la makeShow método.

A continuación en el ejemplo, usted tiene que crear nodos de Todos en la familia y sus spin-offs:

Archie = makeShow ("Todos en la familia", Raíz) -George = makeShow ("los Jefferson", Archie) -makeShow ("Registrándose", George) -maude = makeShow ("Maude", Archie) -makeShow ("Buenos tiempos", Maude) -makeShow ("Gloria", Archie) -makeShow ("Lugar de Archie Bunker", Archie) -

En este caso, tanto los Jefferson y Maude tienen nodos hijos propios. Como resultado, se requiere que las variables para estos dos programas para que puedan pasar como parámetro padre a makeShow al crear los nodos de Registrándose y Buenos tiempos.

Por último, aquí está el código que crea los nodos de Días felices y sus spin-offs:

feliz = makeShow ("Días felices", Raíz) -makeShow ("Mork y Mindy", Feliz) -makeShow ("Laverne y Shirley", Feliz) -makeShow ("Joanie Loves Chachi", contento)-

El árbol completo se crea correctamente en la memoria, para que pueda seguir adelante con la tarea de crear una JTree componente para mostrar el árbol.

Artículos Relacionados