Olá á todos,
Vou explicar meu objetivo e o meu problema:
Eu tenho uma JTree e gostaria de percorre-la e “printar” o path completo (a partir da raiz) de cada folha da árvore. Eu quase consegui mas a recursão está
me deixando meio maluco. O código que utilizo é o seguinte:
public void printTree(){
for(int i = 0 ; i < rootNode.getChildCount() ; i++){
DefaultMutableTreeNode son = (DefaultMutableTreeNode)rootNode.getChildAt( i );
path = rootNode.toString() + "\\" + son.toString();
if( son.getChildCount() > 0){
oldPath = path;
getSubNodes( son );
}
else{
System.out.println(path);
}
}
}
private void getSubNodes( DefaultMutableTreeNode node ) {
for( int i = 0; i < node.getChildCount(); i++ ) {
// recupera o filho
DefaultMutableTreeNode son = (DefaultMutableTreeNode)node.getChildAt( i );
path += "\\" + son.toString();
// verifica se o item possui sub-itens
if( son.getChildCount() > 0 ) {
getSubNodes( son );
}
else{
System.out.println(path);
path = oldPath;
}
}
}
Se eu criar uma arvore como a do anexo, o resultado é o seguinte:
Observem que o caminho de “New node 8” está errado. Alguém tem uma dica?
Obrigado.