Java - jTree refresh

Boas,
estou fazendo um trabalho no qual eu busco num ficheiro contactos e disponho-os em ordem numa JTree, mas qd adiciono um contacto novo depois da jtree ja estar criada ela nao actualiza de forma a mostrar o novo contacto. Alguem sabe o problema? Vou deixar o codigo aqui:

-----INICIALIZA JTREE-----
public JTree getJTreeContactos() {
if (jTreeContactos == null) {
DefaultMutableTreeNode grupo =
new DefaultMutableTreeNode("Amigos");
createNodes(grupo);//função que cria a arvore a partir dos contactos
jTreeContactos= new JTree(grupo);
jTreeContactos.setEditable(true);
jTreeContactos.getSelectionModel().setSelectionMode
(TreeSelectionModel.SINGLE_TREE_SELECTION);
jTreeContactos.setBounds(new Rectangle(0, 0, 522, 268));
jTreeContactos.setShowsRootHandles(true);
}
return jTreeContactos;
}
-----ADICIONA NÓ À JTREE-----

public void add_folha(String user_add)
{
nodd=new DefaultMutableTreeNode(user_add);
grupo.add(nodd);
jTreeContactos.scrollPathToVisible(new TreePath(nodd.getPath()));
}


Agradeço desde já a vossa ajuda!
 
Podes tentar dar uma vista de olhos aqui

Exemplo do link:
Código:
treePanel.addObject("New Node " + newNodeSuffix++);
...
public DefaultMutableTreeNode addObject(Object child) {
    DefaultMutableTreeNode parentNode = null;
    TreePath parentPath = tree.getSelectionPath();

    if (parentPath == null) {
        //There is no selection. Default to the root node.
        parentNode = rootNode;
    } else {
        parentNode = (DefaultMutableTreeNode)
                     (parentPath.getLastPathComponent());
    }

    return addObject(parentNode, child, true);
}
...
public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
                                        Object child,
                                        boolean shouldBeVisible) {
    DefaultMutableTreeNode childNode =
            new DefaultMutableTreeNode(child);
    ...
    treeModel.insertNodeInto(childNode, parent,
                             parent.getChildCount());

    //Make sure the user can see the lovely new node.
    if (shouldBeVisible) {
        tree.scrollPathToVisible(new TreePath(childNode.getPath()));
    }
    return childNode;
}

Mas para já parece-me estranho teres (atenção que eu nunca usei uma JTree):
Código:
 public void add_folha(String user_add)
    {
        nodd=new DefaultMutableTreeNode(user_add);
        grupo.add(nodd);
        jTreeContactos.scrollPathToVisible(new TreePath(nodd.getPath()));
     }
então adicionas ao grupo e fazes scroll ao jTreeContactos?
 
Última edição:
Back
Topo