TreeCellRenderer (Java Platform SE 8 )
Keywords: javax.swing.tree.TreeCellRenderer interface
Date: 2026-04-22

javax.swing.tree

## Interface TreeCellRenderer

- All Known Implementing Classes:
    DefaultTreeCellRenderer

      public interface TreeCellRenderer

  Defines the requirements for an object that displays a tree node. See How to Use Trees in The Java Tutorial for an example of implementing a tree cell renderer that displays custom icons.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Component` | `getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)` Sets the value of the current tree cell to `value`.

- - ### Method Detail

    - #### getTreeCellRendererComponent

          Component getTreeCellRendererComponent(JTree tree,
                                                 Object value,
                                                 boolean selected,
                                                 boolean expanded,
                                                 boolean leaf,
                                                 int row,
                                                 boolean hasFocus)

      Sets the value of the current tree cell to `value`. If `selected` is true, the cell will be drawn as if selected. If `expanded` is true the node is currently expanded and if `leaf` is true the node represents a leaf and if `hasFocus` is true the node currently has focus. `tree` is the `JTree` the receiver is being configured for. Returns the `Component` that the renderer uses to draw the value.

      The `TreeCellRenderer` is also responsible for rendering the the cell representing the tree's current DnD drop location if it has one. If this renderer cares about rendering the DnD drop location, it should query the tree directly to see if the given row represents the drop location:

               JTree.DropLocation dropLocation = tree.getDropLocation();
               if (dropLocation != null
                       && dropLocation.getChildIndex() == -1
                       && tree.getRowForPath(dropLocation.getPath()) == row) {

                   // this row represents the current drop location
                   // so render it specially, perhaps with a different color
               }

      Returns:
        the `Component` that the renderer uses to draw the value

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.