Класс TreePath
- Все реализуемые интерфейсы:
Serializable
public class TreePath extends Object implements Serializable
TreePath представляет собой массив объектов, однозначно определяющих путь к узлу в дереве. Элементы массива упорядочены так, что корень является первым элементом массива. Например, файл в файловой системе однозначно определяется массивом родительских каталогов и именем файла. Путь /tmp/foo/bar может быть представлен TreePath как new TreePath(new Object[] {"tmp", "foo", "bar"}). TreePath широко используется в JTree и связанных классах. Например, JTree представляет выбор в виде массива TreePath. При использовании с JTree элементами пути являются объекты, возвращаемые TreeModel. Когда JTree используется совместно с DefaultTreeModel, элементами пути являются TreeNode. В следующем примере показано, как извлечь пользовательский объект из выбранного элемента в JTree:
DefaultMutableTreeNode root = ...;
DefaultTreeModel model = new DefaultTreeModel(root);
JTree tree = new JTree(model);
...
TreePath selectedPath = tree.getSelectionPath();
DefaultMutableTreeNode selectedNode =
((DefaultMutableTreeNode)selectedPath.getLastPathComponent());
Object myObject= selectedNode.getUserObject();
Подклассам обычно требуется переопределить только
getLastPathComponent и getParentPath. Поскольку JTree внутренне создает TreePath в различных местах, обычно нет смысла создавать подкласс TreePath и использовать его с JTree. Хотя TreePath является сериализуемым, если какие-либо элементы пути не сериализуемы, возникает исключение
NotSerializableException.
Дополнительные сведения и примеры использования путей в деревьях см. в разделе Использование деревьев в учебнике Java.
Предупреждение: Сериализованные объекты этого класса несовместимы с будущими выпусками Swing. Текущая поддержка сериализации предназначена для кратковременного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4, в пакете java.beans добавлена поддержка долговременного хранения всех JavaBeans. См. XMLEncoder.
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает пустой TreePath. |
|
| Создает TreePath, содержащий один элемент. |
||
| Создает TreePath из массива. |
||
protected |
Создает TreePath из массива. |
|
protected |
Создает TreePath с указанными родительским элементом и элементом. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает этот TreePath с указанным объектом. |
Object |
getLastPathComponent() |
Возвращает последний элемент этого пути. |
TreePath |
getParentPath() |
Возвращает TreePath родительского элемента. |
Object[] |
getPath() |
Возвращает упорядоченный массив элементов этого TreePath. |
Object |
getPathComponent |
Возвращает элемент пути с указанным индексом. |
int |
getPathCount() |
Возвращает количество элементов в пути. |
int |
hashCode() |
Возвращает хеш-код этого TreePath. |
boolean |
isDescendant |
Возвращает true, если aTreePath является потомком этого TreePath. |
TreePath |
pathByAddingChild |
Возвращает новый путь, содержащий все элементы этого пути и child. |
String |
toString() |
Возвращает строку, отображающую и описывающую свойства этого объекта. |
Подробное описание конструкторов
TreePath
@ConstructorProperties("path") public TreePath(Object[] path) TreePath из массива. Массив однозначно определяет путь к узлу.- Параметры:
-
path— массив объектов, представляющий путь к узлу - Исключения:
-
IllegalArgumentException— еслиpathравноnull, пусто или содержит значениеnull
TreePath
public TreePath(Object lastPathComponent)
TreePath, содержащий один элемент. Используется для создания TreePath, обозначающего корень.- Параметры:
-
lastPathComponent— корень - Исключения:
-
IllegalArgumentException— еслиlastPathComponentравноnull - См. также:
TreePath
protected TreePath(TreePath parent, Object lastPathComponent)
TreePath с указанными родительским элементом и элементом.- Параметры:
-
parent— путь к родительскому элементу илиnull, чтобы указать корень -
lastPathComponent— последний элемент пути - Исключения:
-
IllegalArgumentException— еслиlastPathComponentравноnull
TreePath
protected TreePath(Object[] path, int length)
TreePath из массива. Возвращенный TreePath представляет элементы массива от 0 до length - 1. Этот конструктор используется внутренне и обычно не представляет интереса за пределами подклассов.
- Параметры:
-
path— массив, из которого нужно создатьTreePath -
length— задает количество элементов вpath, используемых для созданияTreePath - Исключения:
-
NullPointerException— еслиpathравноnull -
ArrayIndexOutOfBoundsException— еслиlength - 1находится за пределами диапазона массива -
IllegalArgumentException— если любой из элементов от0доlength - 1равенnull
TreePath
protected TreePath()
TreePath. Предназначен для подклассов, представляющих пути иным способом. Подклассы, использующие этот конструктор, должны переопределить getLastPathComponent и getParentPath.Подробное описание методов
getPath
public Object[] getPath()
TreePath. Первый элемент — корень.- Возвращает:
- массив элементов этого
TreePath
getLastPathComponent
public Object getLastPathComponent()
- Возвращает:
- последний элемент пути
getPathCount
public int getPathCount()
- Возвращает:
- количество элементов в пути
getPathComponent
public Object getPathComponent(int index)
- Параметры:
-
index— индекс запрашиваемого элемента - Возвращает:
- элемент с указанным индексом
- Исключения:
-
IllegalArgumentException— если индекс находится за пределами диапазона этого пути
equals
public boolean equals(Object o)
TreePath с указанным объектом. Метод возвращает true, если o является TreePath с точно такими же элементами (что определяется с помощью equals для каждого элемента пути).hashCode
isDescendant
public boolean isDescendant(TreePath aTreePath)
aTreePath является потомком этого TreePath. TreePath P1 является потомком TreePath P2, если P1 содержит все элементы, составляющие путь P2's. Например, если путь этого объекта — [a, b], а путь aTreePath — [a, b, c], то aTreePath является потомком этого объекта. Однако, если путь aTreePath — [a], он не является потомком этого объекта. Согласно этому определению TreePath всегда считается потомком самого себя. То есть aTreePath.isDescendant(aTreePath) возвращает true.- Параметры:
-
aTreePath—TreePathдля проверки - Возвращает:
- true, если
aTreePathявляется потомком этого пути
pathByAddingChild
public TreePath pathByAddingChild(Object child)
child. child является последним элементом вновь созданного TreePath.- Параметры:
-
child— элемент пути для добавления - Возвращает:
- новый путь, содержащий все элементы этого пути и
child - Исключения:
-
NullPointerException— еслиchildравноnull
getParentPath
public TreePath getParentPath()
TreePath родительского элемента. Возвращаемое значение null указывает, что это корневой узел.- Возвращает:
- родительский путь
toString
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/tree/TreePath.html