1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Java - jTree refresh

Discussão em 'Programação' iniciada por jack_daniels, 4 de Dezembro de 2007. (Respostas: 1; Visualizações: 1390)

  1. 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!
     
  2. reise

    reise Power Member

    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: 4 de Dezembro de 2007

Partilhar esta Página