# Package javax.swing.tree

Provides classes and interfaces for dealing with `javax.swing.JTree`.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  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.
  TreeSelectionModel | This interface represents the current state of the selection for the tree component.

- Class Summary
  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.
  FixedHeightLayoutCache | NOTE: This will become more open in a future release.
  TreePath | `TreePath` represents an array of objects that uniquely identify the path to a node in a tree.
  VariableHeightLayoutCache | NOTE: This will become more open in a future release.

- Exception Summary
  Exception | Description
  --- | ---
  ExpandVetoException | Exception used to stop and expand/collapse from happening.

## Package javax.swing.tree Description

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 Threads and 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

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.