Класс TreePath
- java.lang.Object
-
- javax.swing.tree.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()).
getUserObject(); Подклассы обычно должны переопределять только
getLastPathComponent, и getParentPath. Поскольку JTree внутренне создаёт TreePath в различных точках, обычно не имеет смысла подклассировать TreePath и использовать с JTree. Хотя TreePath сериализуем, будет брошено исключение
NotSerializableException, если какой-либо элемент пути не сериализуем.
Для получения дополнительной информации и примеров использования путей дерева см. Использование деревьев в Руководстве по Java.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans™ была добавлена в пакет java.beans. См. XMLEncoder.
- См. также:
- Сериализованная форма
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | TreePath() | Создаёт пустой |
TreePath(Object lastPathComponent) | Создаёт | |
TreePath(Object[] path) | Создаёт | |
protected | TreePath(Object[] path,
int length) | Создаёт |
protected | TreePath(TreePath parent,
Object lastPathComponent) | Создаёт |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | equals(Object o) | Сравнивает этот |
Object | getLastPathComponent() | Возвращает последний элемент этого пути. |
TreePath | getParentPath() | Возвращает |
Object[] | getPath() | Возвращает упорядоченный массив элементов этого |
Object | getPathComponent(int index) | Возвращает элемент пути по указанному индексу. |
int | getPathCount() | Возвращает количество элементов в пути. |
int | hashCode() | Возвращает хэш-код этого |
boolean | isDescendant(TreePath aTreePath) | Возвращает true, если |
TreePath | pathByAddingChild(Object child) | Возвращает новый путь, содержащий все элементы этого пути плюс |
String | toString() | Возвращает строку, отображающую и идентифицирующую свойства этого объекта. |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, 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(Object[])
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- определяет количество элементов в массиве для создания объекта 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, если переданный объект является объектом TreePath с тождественными элементами (как определяется методом equals для каждого элемента пути).
- Переопределяет:
-
equalsв классеObject - Параметры:
-
o- объект для сравнения - Возвращает:
-
trueесли этот объект такой же, как переданный аргумент;falseв противном случае. - См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Возвращает хэш-код этого объекта TreePath. Хэш-код объекта TreePath — это хэш-код последнего элемента пути.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- хэш-код объекта
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
isDescendant
public boolean isDescendant(TreePath aTreePath)
Возвращает true, если 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, если переданный объект TreePath является потомком этого пути
pathByAddingChild
public TreePath pathByAddingChild(Object child)
Возвращает новый путь, содержащий все элементы этого пути плюс child. child является последним элементом нового созданного объекта TreePath.
- Параметры:
-
child- добавляемый элемент пути - Возвращает:
- новый путь, содержащий все элементы этого пути плюс
child - Исключения:
-
NullPointerException- еслиchildявляетсяnull
getParentPath
public TreePath getParentPath()
Возвращает путь к родительскому элементу. Возвращаемое значение null указывает, что это корневой узел.
- Возвращает:
- путь к родителю
toString
public String toString()
Возвращает строку, отображающую и идентифицирующую свойства этого объекта.
© 1993, 2020, 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/11/docs/api/java.desktop/javax/swing/tree/TreePath.html