# Package javax.swing.tree

package javax.swing.tree
Provides classes and interfaces for dealing with `javax.swing.JTree`. You use these classes and interfaces if you want control over how trees are constructed, updated, and rendered, as well as how data associated with the tree nodes are viewed and managed.

Note: Most of the Swing API is not thread safe. For details, see Concurrency in Swing, a section in The Java Tutorial.

## Related Documentation

For overviews, tutorials, examples, guides, and tool documentation, please see:

- How to Use Trees, a section in The Java Tutorial

Since:
  1.2

- Related Packages
  Package
  Description
  javax.swing
  Provides a set of "lightweight" (all-Java language) components that, to the maximum degree possible, work the same on all platforms.
- Class
  Description
  AbstractLayoutCache
  Warning: Serialized objects of this class will not be compatible with future Swing releases.
  AbstractLayoutCache.NodeDimensions
  Used by `AbstractLayoutCache` to determine the size and x origin of a particular node.
  DefaultMutableTreeNode
  A `DefaultMutableTreeNode` is a general-purpose node in a tree data structure.
  DefaultTreeCellEditor
  A `TreeCellEditor`.
  DefaultTreeCellRenderer
  Displays an entry in a tree.
  DefaultTreeModel
  A simple tree data model that uses TreeNodes.
  DefaultTreeSelectionModel
  Default implementation of TreeSelectionModel.
  ExpandVetoException
  Exception used to stop an expand/collapse from happening.
  FixedHeightLayoutCache
  NOTE: This will become more open in a future release.
  MutableTreeNode
  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.
  RowMapper
  Defines the requirements for an object that translates paths in the tree into display rows.
  TreeCellEditor
  Adds to CellEditor the extensions necessary to configure an editor in a tree.
  TreeCellRenderer
  Defines the requirements for an object that displays a tree node.
  TreeModel
  The model used by `JTree`.
  TreeNode
  Defines the requirements for an object that can be used as a tree node in a JTree.
  TreePath
  `TreePath` represents an array of objects that uniquely identify the path to a node in a tree.
  TreeSelectionModel
  This interface represents the current state of the selection for the tree component.
  VariableHeightLayoutCache
  NOTE: This will become more open in a future release.