¿Cómo construir un árbol en java
LA árbol es un componente Swing de fantasía que muestra datos jerárquicos en forma de esquema en Java, que nerds informáticos se refieren como un árbol. El tipo de árbol es probable que estés más familiarizado 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 manera más fácil de hacerlo es utilizar el DefaultMutableTreeNode clase.
los DefaultMutableTreeNode clase implementa la TreeNode interfaz. Como resultado de ello, puede utilizar DefaultMutableTreeNode objetos para cualquiera de los métodos que figuran en esta tabla que exigen TreeNode objetos.
Constructor | Descripción |
---|---|
DefaultMutableTreeNode () | Crea un nodo de árbol vacío. |
DefaultMutableTreeNode (ObjectuserObject) | Crea un nodo de árbol con el objeto de usuario especificado. |
Procedimiento | Descripción |
void add (TreeNode niño) | Añade un nodo hijo. |
TreeNode getFirstChild () | Obtiene el primero de los hijos de este nodo. |
DefaultMutableTreeNodegetNextSibling () | Obtiene el siguiente hermano. |
TreeNode getParent () | Obtiene el padre de este nodo. |
Objeto getUserObject () | Obtiene el objeto de usuario para este nodo. |
los DefaultMutableTreeNode clase proporciona tres características básicas de cada nodo:
los objeto de usuario, que contiene los datos representados por el nodo. Puede utilizar objetos de ningún tipo que desee para el objeto de usuario. El control de árbol llama al usuario objeto de Encadenar Método para determinar qué texto a mostrar 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.
Cualquier hijos de este nodo, a menos que el nodo pasa a ser un nodo hoja. Usted 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, puede utilizar el getFirstChild y getNextSibling métodos de "a pie" todo el árbol y el acceso cada nodo.
La camiseta que se construye aquí enumera espectáculos spinoff de tres programas populares de televisión del pasado:
The Andy Griffith Show, que tenían dos spin-offs: Gomer Pyle, U.S.M.C., y Mayberry R.F.D.
Todo en la familia, que dio lugar directamente cuatro spin-offs: The Jeffersons, Maude, Gloria, y Lugar de Archie Bunker. Además, dos de estas escisiones tenían spin-offs de su propia participación de las criadas: criada The Jeffersons "se convirtió en el tema de un espectáculo llamado Registrándose, y la doncella de Maude se convirtió en el personaje principal de Buenos tiempos.
Happy Days, que giraban fuera Mork y Mindy, Laverne y Shirley, y Joanie Loves Chachi.
Usted puede tomar muchos enfoques para la construcción de árboles, la mayoría de las cuales implican un poco de 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 un 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 configuración, usted no necesitará estas variables más. Ves por qué usted no necesita 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 otros nodos, se crea un método de ayuda llamada makeShow:
privada DefaultMutableTreeNode makeShow (título de cuerdas, 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 el Cuerda parámetro. El nodo devuelto también se agrega al nodo padre cuando era niño. Así, usted puede llamar a este método tanto para crear un nuevo nodo y coloque el nodo en el árbol.
El siguiente paso es la creación de algunos nodos. Continuando con el ejemplo, se empieza con los nodos para El Show de Andy Griffith y sus spin-offs:
andy = makeShow ("The Andy Griffith Show", raíz) -makeShow ("Gomer Pyle, USMC", andy) -makeShow ("Mayberry RFD", andy) -
Aquí, makeShow está llamada a crear un nodo para The Andy Griffith Show, 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 espectáculos spinoff, esta vez especificando andy como el nodo principal.
Porque ni Gomer Pyle, U.S.M.C., ni Mayberry R.F.D. tenía un espectáculo spinoff, usted no tiene que pasar estos nodos como el parámetro de matriz a la makeShow método.
A continuación en el ejemplo, usted tiene que crear nodos para Todo en la familia y sus spin-offs:
archie = makeShow ("All in the Family", raíz) -George = makeShow ("The Jeffersons", archie) -makeShow ("Verificación In", george) -maude = makeShow ("Maude", archie) -makeShow (" Good Times ", maude) -makeShow (" Gloria ", archie) -makeShow (" Lugar de Archie Bunker ", archie) -
En este caso, tanto The Jeffersons y Maude tener nodos hijos propios. Como resultado, se requiere que las variables para estos dos espectáculos de manera que se pueden pasar como el parámetro primario se makeShow al crear los nodos para Registrándose y Buenos tiempos.
Por último, aquí está el código que crea los nodos de Dias felices y sus spin-offs:
feliz = makeShow ("Happy Days", raíz) -makeShow ("Mork y Mindy", feliz) -makeShow ("Laverne y Shirley", feliz) -makeShow ("Joanie Loves Chachi", feliz) -
El árbol completo se crea correctamente en la memoria, para que pueda seguir adelante con la tarea de crear un JTree componente para mostrar el árbol.