Класс 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() |
Возвращает строку, отображающую и описывающую свойства этого объекта. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
protected void |
finalize() |
Устарел, планируется удаление: этот элемент API может быть удален в будущей версии. Финализация устарела и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не пройдет заданное время. |
final void |
wait |
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не пройдет заданное время. |
Подробное описание конструкторов
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.