2012-10-02 3 views
5

So ist dies eine Methode von mir, die jedes Mal aufgerufen wird, wenn ein neuer Knoten hinzugefügt wird.Ich brauche das Modell jedes Mal gelöscht.Das DefaultListModel hat eine .clear() -Methode. Das DefaultTreeModel nicht.Hilfe?Wie lösche ich ein JTree-Modell? (Entfernen aller Knoten)

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

Haben Sie versucht, den Wurzelknoten zu verwenden, und verwenden Sie die 'removeAllChildren()' Methode? – DejanLekic

+0

Es funktioniert nicht. –

+1

Es funktioniert. Aber ich brauchte auch die model.reload() aufgerufen. –

Antwort

4

Ich habe es ausgearbeitet. Der neue Code sieht so aus.

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

Wenn Sie tatsächlich benötigen löschen alle Knoten einschließlich Root Knoten sollten Sie Modell null machen. Wie folgt: