ツリーの枝を追加、削除、編集したときのビューの更新

ツリーをすべて作り直すと、開いたり閉じている情報が失われています。 変更があったノードのみを更新するにはDefaultTreeModelに対してノードを操作します。

    JTree tree;
    TreePath path = tree.getSelectionPath();
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
    DefaultTreeModel model = (DefaultTreeModel) tree.getModel();

    // ノードを追加したとき
    Object userObject = ...;
    DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(userObject);
    model.insertNodeInto(newNode, node, node.getChildCount());

    // ノードを編集したとき
    model.nodeChanged(node);

    // ノードを削除したとき
    model.removeNodeFromParent(child);

    // あるノードとその配下が変わったとき
    model.reload(node);

    // ノード全体が変わったとき
    model.reload();