Como faço para limpar um modelo JTree? (Removendo todos os nós)
Pergunta
Portanto, este é um método meu que é chamado sempre que um novo nó é adicionado. Preciso que o modelo seja limpo sempre. O DefaultListModel tem um método .clear().
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);
}
Solução
Eu resolvi isso. O novo código se parece com isso.
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);
}
}
Outras dicas
Se você realmente precisa excluir TODOS os nós incluindo raiz nó você deve tornar o modelo nulo.Assim:
mytree.setModel(null)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow