2012-10-02 22 views
5

Quindi questo è un metodo che viene chiamato ogni volta che viene aggiunto un nuovo nodo. È necessario che il modello venga cancellato ogni volta. DefaultListModel ha un metodo .clear(). DefaultTreeModel non. Aiuto?Come cancellare un modello JTree? (Rimozione di tutti i nodi)

public void fillUserList(){ 

    List<User> userFriends = ClientController.getInstance().getPrieteniiUserului(user); 

    for(int i=0;i<userFriends.size();i++){ 
     User user = userFriends.get(i); 

     model.insertNodeInto(new DefaultMutableTreeNode(user.getNume()), root, i); 

    } 

    System.out.println(userFriends); 

} 
+1

Hai provato a utilizzare il nodo radice e utilizzare il metodo 'removeAllChildren()'? – DejanLekic

+0

Non funziona. –

+1

Funziona. Ma avevo anche bisogno del modello model.reload() chiamato. –

risposta

4

L'ho elaborato. Il nuovo codice ha questo aspetto.

public void fillUserList(){  
    List<User> userFriends = ClientController.getInstance().getPrieteniiUserului(user); 
    root.removeAllChildren(); //this removes all nodes 
    model.reload(); //this notifies the listeners and changes the GUI 
    for(int i=0;i<userFriends.size();i++){ 
     User user = userFriends.get(i); 
     model.insertNodeInto(new DefaultMutableTreeNode(user.getNume()), root, i);   
    } 
} 
1

Se hai veramente bisogno di eliminare tutti i noditra cui radice nodo si dovrebbe fare modello nullo. In questo modo:

mytree.setModel(null) 
Problemi correlati