8

つまり、これは新しいノードが追加されるたびに呼び出される私のメソッドです。モデルを毎回クリアする必要があります。DefaultListModelには.clear()メソッドがあります。DefaultTreeModelにはありません。ヘルプ?

    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);

}
4

2 に答える 2

5

私はそれを解決しました。新しいコードは次のようになります。

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);        
    }
}
于 2012-10-02T20:42:50.653 に答える
2

ルートノードを含むすべてのノードを実際に削除する必要がある場合は、モデルをnullにする必要があります。このような:

mytree.setModel(null)
于 2013-06-20T05:51:18.713 に答える