Spec-Zone.ru › OpenJDK 27

Класс 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());
  Object myObject= selectedNode.getUserObject();
Подклассам обычно требуется переопределить только getLastPathComponent и getParentPath. Поскольку JTree внутренне создает TreePath в различных местах, обычно нет смысла создавать подкласс TreePath и использовать его с JTree.

Хотя TreePath поддерживает сериализацию, если какие-либо элементы пути не поддерживают сериализацию, возникает NotSerializableException.

Дополнительные сведения и примеры использования путей в дереве см. в разделе Использование деревьев в Учебнике по Java.

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4 в пакет java.beans добавлена поддержка долгосрочного хранения всех JavaBeans. См. XMLEncoder.

Краткое описание конструкторов

TreePath()
TreePath(Object lastPathComponent)
TreePath(Object[] path)
TreePath(Object[] path, int length)
TreePath(TreePath parent, Object lastPathComponent)
Модификатор Конструктор Описание
protected
Создает пустой TreePath.
Создает TreePath, содержащий один элемент.
Создает TreePath из массива.
protected
Создает TreePath из массива.
protected
Создает TreePath с указанными родительским элементом и элементом.

Краткое описание методов

Модификатор и тип Метод Описание
boolean equals(Object o)
Сравнивает этот TreePath с указанным объектом.
Object getLastPathComponent()
Возвращает последний элемент этого пути.
TreePath getParentPath()
Возвращает TreePath родительского элемента.
Object[] getPath()
Возвращает упорядоченный массив элементов этого TreePath.
Object getPathComponent(int index)
Возвращает элемент пути по указанному индексу.
int getPathCount()
Возвращает количество элементов в пути.
int hashCode()
Возвращает хеш-код этого TreePath.
boolean isDescendant(TreePath aTreePath)
Возвращает true, если aTreePath является потомком этого TreePath.
TreePath pathByAddingChild(Object child)
Возвращает новый путь, содержащий все элементы этого пути и 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(long timeoutMillis)
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не пройдет заданное время.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать до тех пор, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не пройдет заданное время.

Подробное описание конструкторов

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 — задает количество элементов в 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 для каждого элемента пути).
Переопределяет:
equals в классе Object
Параметры:
o — объект для сравнения
Возвращает:
true, если этот объект совпадает с аргументом obj; в противном случае — false.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает хеш-код этого TreePath. Хеш-код TreePath совпадает с хеш-кодом последнего элемента пути.
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код объекта
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(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, если aTreePath является потомком этого пути

pathByAddingChild

public TreePath pathByAddingChild(Object child)
Возвращает новый путь, содержащий все элементы этого пути и child. child является последним элементом нового TreePath.
Параметры:
child — добавляемый элемент пути
Возвращает:
новый путь, содержащий все элементы этого пути и child
Исключения:
NullPointerException — если child равно null

getParentPath

public TreePath getParentPath()
Возвращает TreePath родительского элемента. Значение null означает, что это корневой узел.
Возвращает:
родительский путь

toString

public String toString()
Возвращает строку, отображающую и описывающую свойства этого объекта.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого объекта

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API