Como construir uma árvore em java

UMA árvore

é um componente Swing fantasia que exibe dados hierárquicos em forma de esboço em Java, que nerds de computador se referem como uma árvore. O tipo de árvore que você provavelmente está mais familiarizado é a estrutura de diretórios do seu disco. Árvores são criados a partir da JTree classe.

Antes de você pode realmente criar um controle de árvore, você deve construir a árvore que exibe. A maneira mais fácil de fazer isso é usar o DefaultMutableTreeNode classe.

o DefaultMutableTreeNode classe implementa a TreeNode interface. Como resultado, você pode usar DefaultMutableTreeNode objetos para qualquer um dos métodos listados nesta tabela que exigem TreeNode objetos.

ConstrutorDescrição
DefaultMutableTreeNode ()Cria um nó de árvore vazia.
DefaultMutableTreeNode (Object
UserObject)
Cria um nó de árvore com o objeto de usuário especificado.
MétodoDescrição
Void Adicionar (criança TreeNode)Adiciona um nó filho.
TreeNode getFirstChild ()Obtém o primeiro deste nó&crianças rsquo-S.
DefaultMutableTreeNode
getNextSibling ()
Obtém o próximo irmão.
TreeNode getParent ()Obtém este nó&rsquo-s-mãe.
Objecto getUserObject ()Obtém o objeto de usuário para este nó.

o DefaultMutableTreeNode classe fornece três características básicas para cada nó:

  • o utilizador objeto, que contém os dados representados pelo nó. Você pode usar objetos de qualquer tipo que você deseja para o objeto usuário. O controle de árvore chama o usuário objeto de para sequenciar método para determinar o texto a ser exibido para cada nó. A maneira mais fácil de configurar o objeto de usuário é passá-lo através do DefaultMutableTreeNode construtor.

  • O pai deste nó, a menos que o nó passa a ser a raiz.

  • Quaisquer filhos deste nó, a menos que o nó passa a ser um nó folha. Você cria nós filho chamando o adicionar método.

    Video: Árvore binária - Implementação em Java

o DefaultMutableTreeNode classe tem muitos mais métodos para navegar na árvore do que os mostrados aqui. Dado um nó raiz, no entanto, você pode usar o getFirstChild e getNextSibling métodos para “andar” a árvore inteira e acessar cada nó.

Video: Carpete de Musgo de Java // TRICK TIPS PET HOBBY

O tee que é construído aqui lista mostra spinoff de três programas de televisão populares do passado:

  • O Griffith Show Andy, que tinha dois spinoffs: Gomer Pyle, U.S.M.C., e Mayberry R.F.D.

  • Todos na família, que gerou directamente quatro cisões: Os Jeffersons, Maude, Gloria, e Archie Bunker Place. Além disso, dois desses spinoffs teve spinoffs de sua própria envolvendo as empregadas: empregada doméstica The Jeffersons’ tornou-se o tema de uma mostra chamada Efetuando check-in, e empregada doméstica de Maude se tornou o personagem principal Bons tempos.

  • Happy Days, que cindido Mork e Mindy, Laverne e Shirley, e Joanie Loves Chachi.

Video: Como plantar musgo de Java - Aquario Plantado #2

Você pode tomar muitas abordagens para a construção de árvores, a maioria dos quais envolvem alguma programação recursiva. A maioria dos programas reais que trabalham com árvores precisam de algum tipo de programação recursiva para construir a árvore.

O primeiro passo na criação de uma árvore está declarando um DefaultMutableTreeNode variável para cada nó que não é um nó folha. Para o exemplo série de TV, vamos começar com o seguinte código:

DefaultMutableTreeModel andy, Archie, feliz, george, maude-


Estas variáveis ​​podem ser variáveis ​​locais no construtor quadro porque depois que você começa a árvore configurado, você não vai precisar mais essas variáveis. Você vê por que você não precisa de variáveis ​​para os nós de folha em um momento.

Em seguida, você criar o nó raiz:

DefaultMutableTreeNode raiz = new DefaultMutableTreeNode ("Spinoffs famosos") -

Agora, para simplificar a tarefa de criar todos os outros nós, você cria um método auxiliar chamado makeShow:

privado DefaultMutableTreeNode makeShow (título String, DefaultMutableTreeNode pai) {DefaultMutableTreeNode show-show = new DefaultMutableTreeNode (título) -parent.add (show) -Retornar show-}

Este método aceita uma string e outro nó como parâmetros e retorna um nó cujo objeto de usuário é definido para o Corda parâmetro. O nó retornado também é adicionado ao nó pai como uma criança. Assim, você pode chamar esse método tanto para criar um novo nó e colocar o nó na árvore.

O próximo passo é criar alguns nós. Continuando o exemplo, você começa com os nós para O Show de Andy Griffith e seus desdobramentos:

Andy = makeShow ("O Show de Andy Griffith", Raiz) -makeShow ("Gomer Pyle, U.S.M.C.", Andy) -makeShow ("Mayberry R.F.D.", Andy) -

Aqui, makeShow é chamado para criar um nó para O Griffith Show Andy, com o nó raiz especificado como o seu progenitor. O nó retornado por esse método é salvo no andy variável. Então makeShow é chamado duas vezes para criar os shows spinoff, desta vez especificando andy como o nó pai.

porque nem Gomer Pyle, U.S.M.C., nem Mayberry R.F.D. tinha um show spinoff, você não tem que passar esses nós como o parâmetro pai para o makeShow método.

Em seguida, no exemplo, você tem que criar nós de Todos na família e seus desdobramentos:

Video: plantando tronquinho bonsai .wmv

archie = makeShow ("Todos na família", Raiz) -George = makeShow ("os Jeffersons", Archie) -makeShow ("Efetuando check-in", George) -maude = makeShow ("Maude", Archie) -makeShow ("Bons tempos", Maude) -makeShow ("Gloria", Archie) -makeShow ("Archie Bunker Lugar", Archie) -

Neste caso, ambos os Jeffersons e Maude tem nós filhos do seu próprio. Como resultado, as variáveis ​​são necessários para estes dois shows, para que possam ser passado como o parâmetro pai para makeShow quando você cria os nós de Efetuando check-in e Bons tempos.

Finalmente, aqui está o código que cria os nós para os Dias felizes e seus desdobramentos:

feliz = makeShow ("Dias felizes", Raiz) -makeShow ("Mork e Mindy", Feliz) -makeShow ("Laverne e Shirley", Feliz) -makeShow ("Joanie Loves Chachi", Feliz) -

A árvore completa é criada com êxito na memória, para que possa continuar com a tarefa de criar um JTree componente para mostrar a árvore.


Publicações relacionadas