JTree

1 resposta
R

Já a um tempão estou tentando inserir objetos em uma árvore e não passo do primeiro nível dela.
Minha classe Conta, possui os atributos numeroConta e ContaPai, que funcionam mais ou menos assim:

NumConta          ContaPai
1                   null
1.1                 1
1.2                 1
1.2.1             1.2
2                    null
2.1                 2

Quando busco do banco eles estão como acima e preciso gerar uma árvore assim:

1
  -1.1
  -1.2
       -1.2.2
2
   -2.1

Estou usando o código abaixo:

//Instancio a lista de contas
    List<Conta> lista = new LinkedList<Conta>();
    //Busco do Banco todas as contas
    lista = GenericDao.getInstance().getAll(Conta.class);

    //Ordeno a Lista pelo numero da Conta
    MeuComparator comp = new MeuComparator();
    Collections.sort(lista, comp);

    //Neste loop pego cada conta e insiro, se nao tiver pai, ela vai para raiz
    //caso tenha pai ela sera inseria dentro do pai.
    for ( Conta conta : lista ){

        if (conta.getContaPai() == null){
            DefaultMutableTreeNode node = new DefaultMutableTreeNode(conta, true);
            modeloArvore.insertNodeInto(node, root, root.getChildCount());
        } else{
            DefaultMutableTreeNode node2 = new DefaultMutableTreeNode(conta, true);
            DefaultMutableTreeNode nodePai = new DefaultMutableTreeNode(conta.getContaPai(), true);
            modeloArvore.insertNodeInto(node2, nodePai, nodePai.getChildCount());
            modeloArvore.nodeChanged(node2);

        }
    }

Estou usando modelo Default para a árvore.

O resultado, é que ele só tá inserindo o primeiro nível e fica assim:

raiz
     1
     2

O que pode estar acontecendo?

Obrigado pela força

1 Resposta

Metaleiro

JTree - LINK

Criado 30 de julho de 2009
Ultima resposta 30 de jul. de 2009
Respostas 1
Participantes 2