# Interface MutableTreeNode

All Superinterfaces:
  `TreeNode`

All Known Implementing Classes:
  `DefaultMutableTreeNode, JTree.DynamicUtilTreeNode`

public interface MutableTreeNode extends TreeNode
Defines the requirements for a tree node object that can change -- by adding or removing child nodes, or by changing the contents of a user object stored in the node.

See Also:
  - `DefaultMutableTreeNode`
  - `JTree`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `insert(MutableTreeNode child, int index)`
  Adds `child` to the receiver at `index`.
  `void`
  `remove(int index)`
  Removes the child at `index` from the receiver.
  `void`
  `remove(MutableTreeNode node)`
  Removes `node` from the receiver.
  `void`
  `removeFromParent()`
  Removes the receiver from its parent.
  `void`
  `setParent(MutableTreeNode newParent)`
  Sets the parent of the receiver to `newParent`.
  `void`
  `setUserObject(Object object)`
  Resets the user object of the receiver to `object`.

  ### Methods declared in interface TreeNode

  `children, getAllowsChildren, getChildAt, getChildCount, getIndex, getParent, isLeaf`
  Modifier and Type
  Method
  Description
  `Enumeration<? extends TreeNode>`
  `children()`
  Returns the children of the receiver as an `Enumeration`.
  `boolean`
  `getAllowsChildren()`
  Returns true if the receiver allows children.
  `TreeNode`
  `getChildAt(int childIndex)`
  Returns the child `TreeNode` at index `childIndex`.
  `int`
  `getChildCount()`
  Returns the number of children `TreeNode`s the receiver contains.
  `int`
  `getIndex(TreeNode node)`
  Returns the index of `node` in the receivers children.
  `TreeNode`
  `getParent()`
  Returns the parent `TreeNode` of the receiver.
  `boolean`
  `isLeaf()`
  Returns true if the receiver is a leaf.

- ## Method Details

  - ### insert

    void insert(MutableTreeNode child, int index)
    Adds `child` to the receiver at `index`. `child` will be messaged with `setParent`.
    Parameters:
      `child` - node to be added
      `index` - index of the receiver

  - ### remove

    void remove(int index)
    Removes the child at `index` from the receiver.
    Parameters:
      `index` - index of child to be removed

  - ### remove

    void remove(MutableTreeNode node)
    Removes `node` from the receiver. `setParent` will be messaged on `node`.
    Parameters:
      `node` - node to be removed from the receiver

  - ### setUserObject

    void setUserObject(Object object)
    Resets the user object of the receiver to `object`.
    Parameters:
      `object` - object to be set as a receiver

  - ### removeFromParent

    void removeFromParent()
    Removes the receiver from its parent.

  - ### setParent

    void setParent(MutableTreeNode newParent)
    Sets the parent of the receiver to `newParent`.
    Parameters:
      `newParent` - node to be set as parent of the receiver