javax.swing

## Class JTree.DropLocation

- java.lang.Object
- - javax.swing.TransferHandler.DropLocation
  - - javax.swing.JTree.DropLocation

- Enclosing class:
    JTree

      public static final class JTree.DropLocation
      extends TransferHandler.DropLocation

  A subclass of `TransferHandler.DropLocation` representing a drop location for a `JTree`.
  Since:
    1.6
  See Also:
    `JTree.getDropLocation()`

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getChildIndex()` | Returns the index where the dropped data should be inserted with respect to the path returned by `getPath()`.
    `TreePath` | `getPath()` | Returns the path where dropped data should be placed in the tree.
    `String` | `toString()` | Returns a string representation of this drop location.

    - ### Methods inherited from class javax.swing.TransferHandler.DropLocation

      `getDropPoint`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### getChildIndex

          public int getChildIndex()

      Returns the index where the dropped data should be inserted with respect to the path returned by `getPath()`.

      For drop modes `DropMode.USE_SELECTION` and `DropMode.ON`, this index is unimportant (and it will always be `-1`) as the only interesting data is the path over which the drop operation occurred.

      For drop mode `DropMode.INSERT`, this index indicates the index at which the data should be inserted into the parent path represented by `getPath()`. `-1` indicates that the drop occurred over the parent itself, and in most cases should be treated as inserting into either the beginning or the end of the parent's list of children.

      For `DropMode.ON_OR_INSERT`, this value will be an insert index, as described above, or `-1` if the drop occurred over the path itself.

      Returns:
        the child index
      See Also:
        `getPath()`

    - #### getPath

          public TreePath getPath()

      Returns the path where dropped data should be placed in the tree.

      Interpretation of this value depends on the drop mode set on the component. If the drop mode is `DropMode.USE_SELECTION` or `DropMode.ON`, the return value is the path in the tree over which the data has been (or will be) dropped. `null` indicates that the drop is over empty space, not associated with a particular path.

      If the drop mode is `DropMode.INSERT`, the return value refers to the path that should become the parent of the new data, in which case `getChildIndex()` indicates where the new item should be inserted into this parent path. A `null` path indicates that no parent path has been determined, which can happen for multiple reasons:

      - The tree has no model
      - There is no root in the tree
      - The root is collapsed
      - The root is a leaf node
      It is up to the developer to decide if and how they wish to handle the `null` case.

      If the drop mode is `DropMode.ON_OR_INSERT`, `getChildIndex` can be used to determine whether the drop is on top of the path itself (`-1`) or the index at which it should be inserted into the path (values other than `-1`).

      Returns:
        the drop path
      See Also:
        `getChildIndex()`

    - #### toString

          public String toString()

      Returns a string representation of this drop location. This method is intended to be used for debugging purposes, and the content and format of the returned string may vary between implementations.
      Overrides:
        `toString` in class `TransferHandler.DropLocation`
      Returns:
        a string representation of this drop location

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.