Spec-Zone.ru › OpenJDK 21

Класс DefaultMutableTreeNode

java.lang.Object
javax.swing.tree.DefaultMutableTreeNode
Все реализованные интерфейсы:
Serializable, Cloneable, MutableTreeNode, TreeNode
Прямые известные подклассы:
JTree.DynamicUtilTreeNode
public class DefaultMutableTreeNode extends Object implements Cloneable, MutableTreeNode, Serializable
Узел — это универсальный узел в структуре данных дерева. Примеры использования узлов дерева с изменяемыми свойствами см. в разделе Как использовать деревья в Руководстве по Java.

Узел дерева может иметь не более одного родителя и 0 или более дочерних узлов. DefaultMutableTreeNode предоставляет операции для просмотра и изменения родителя и дочерних узлов, а также для просмотра дерева, частью которого является узел. Дерево узла — это множество всех узлов, которые можно достичь, начиная с узла и следуя всем возможным ссылкам к родителям и дочерним узлам. Узел без родителя является корнем своего дерева; узел без дочерних узлов является листом. Дерево может состоять из многих поддеревьев, каждый узел выступает в качестве корня для собственного поддерева.

Этот класс предоставляет перечисления для эффективного обхода дерева или поддерева в различных порядках или для следования пути между двумя узлами. Узел также может содержать ссылку на пользовательский объект, использование которого остается на усмотрение пользователя. Запрос у узла его строкового представления с toString() возвращает строковое представление его пользовательского объекта.

Этот класс не потокобезопасен. Если вы планируете использовать DefaultMutableTreeNode (или дерево TreeNodes) в более чем одном потоке, вам необходимо выполнить собственное синхронизацию. Хорошей практикой является синхронизация по корневому узлу дерева.

Хотя DefaultMutableTreeNode реализует интерфейс MutableTreeNode и позволит вам добавить в него любую реализацию MutableTreeNode, не все методы в DefaultMutableTreeNode будут применимы ко всем реализациям MutableTreeNodes. Особенно в отношении некоторых перечислений, использование некоторых из этих методов предполагает, что DefaultMutableTreeNode содержит только экземпляры DefaultMutableNode. Все методы TreeNode/MutableTreeNode будут работать так, как определено, независимо от добавленных реализаций.

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

См. также:
  • MutableTreeNode

Краткое описание полей

Модификатор и тип Поле Описание
protected boolean allowsChildren
true, если узел может иметь дочерние узлы
protected Vector<TreeNode> children
массив дочерних узлов, может быть null, если у этого узла нет дочерних узлов
static final Enumeration<TreeNode> EMPTY_ENUMERATION
перечисление, которое всегда пустое.
protected MutableTreeNode parent
родитель этого узла или null, если у этого узла нет родителя
protected Object userObject
необязательный пользовательский объект

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

Конструктор Описание
DefaultMutableTreeNode()
Создает узел дерева без родителя и дочерних узлов, но позволяющий иметь дочерние узлы.
DefaultMutableTreeNode(Object userObject)
Создает узел дерева без родителя, без дочерних узлов, позволяющий иметь дочерние узлы, и инициализирует его указанным пользовательским объектом.
DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
Создает узел дерева без родителя, без дочерних узлов, инициализированный указанным пользовательским объектом и допускающий дочерние узлы только при указании.

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

Модификатор и тип Метод Описание
void add(MutableTreeNode newChild)
Удаляет newChild из своего родителя и делает его дочерним узлом этого узла, добавив его в конец массива дочерних узлов этого узла.
Enumeration<TreeNode> breadthFirstEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обхода в ширину.
Enumeration<TreeNode> children()
Создаёт и возвращает перечисление в прямом порядке дочерних узлов этого узла.
Object clone()
Переопределено для того, чтобы сделать клонирование публичным.
Enumeration<TreeNode> depthFirstEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обхода в глубину.
boolean getAllowsChildren()
Возвращает true, если этому узлу разрешено иметь дочерние узлы.
TreeNode getChildAfter(TreeNode aChild)
Возвращает дочерний узел в массиве дочерних узлов этого узла, который непосредственно следует за aChild, который должен быть дочерним узлом этого узла.
TreeNode getChildAt(int index)
Возвращает дочерний узел по указанному индексу в массиве дочерних узлов этого узла.
TreeNode getChildBefore(TreeNode aChild)
Возвращает дочерний узел в массиве дочерних узлов этого узла, который непосредственно предшествует aChild, который должен быть дочерним узлом этого узла.
int getChildCount()
Возвращает количество дочерних узлов этого узла.
int getDepth()
Возвращает глубину дерева, укоренённого в этом узле — наибольшее расстояние от этого узла до листа.
TreeNode getFirstChild()
Возвращает первый дочерний узел этого узла.
DefaultMutableTreeNode getFirstLeaf()
Находит и возвращает первый лист, являющийся потомком этого узла — либо этот узел, либо первый лист первого дочернего узла.
int getIndex(TreeNode aChild)
Возвращает индекс указанного дочернего узла в массиве дочерних узлов этого узла.
TreeNode getLastChild()
Возвращает последний дочерний узел этого узла.
DefaultMutableTreeNode getLastLeaf()
Находит и возвращает последний лист, являющийся потомком этого узла — либо этот узел, либо последний лист последнего дочернего узла.
int getLeafCount()
Возвращает общее количество листов, являющихся потомками этого узла.
int getLevel()
Возвращает количество уровней над этим узлом — расстояние от корня до этого узла.
DefaultMutableTreeNode getNextLeaf()
Возвращает лист после этого узла или null, если этот узел является последним листом в дереве.
DefaultMutableTreeNode getNextNode()
Возвращает узел, следующий за этим узлом в обходе дерева этого узла в порядке обхода вперед.
DefaultMutableTreeNode getNextSibling()
Возвращает следующего брата этого узла в массиве дочерних узлов родителя.
TreeNode getParent()
Возвращает родителя этого узла или null, если у этого узла нет родителя.
TreeNode[] getPath()
Возвращает путь от корня, чтобы добраться до этого узла.
protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
Строит родителей узла до и включая корневой узел, где исходный узел является последним элементом в возвращаемом массиве.
DefaultMutableTreeNode getPreviousLeaf()
Возвращает лист перед этим узлом или null, если этот узел является первым листом в дереве.
DefaultMutableTreeNode getPreviousNode()
Возвращает узел, предшествующий этому узлу в обходе дерева этого узла в порядке обхода вперед.
DefaultMutableTreeNode getPreviousSibling()
Возвращает предыдущего брата этого узла в массиве дочерних узлов родителя.
TreeNode getRoot()
Возвращает корень дерева, содержащего этот узел.
TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)
Возвращает ближайшего общего предка этого узла и aNode.
int getSiblingCount()
Возвращает количество братьев и сестер этого узла.
Object getUserObject()
Возвращает пользовательский объект этого узла.
Object[] getUserObjectPath()
Возвращает путь к пользовательскому объекту от корня, чтобы добраться до этого узла.
void insert(MutableTreeNode newChild, int childIndex)
Удаляет newChild из его текущего родителя (если у него есть родитель), устанавливает родителя дочернего узла в этот узел, а затем добавляет дочерний узел в массив дочерних узлов этого узла по индексу childIndex.
boolean isLeaf()
Возвращает true, если у этого узла нет дочерних узлов.
boolean isNodeAncestor(TreeNode anotherNode)
Возвращает true, если anotherNode является предком этого узла — если это узел, родитель этого узла или предок родителя этого узла.
boolean isNodeChild(TreeNode aNode)
Возвращает true, если aNode является дочерним узлом этого узла.
boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
Возвращает true, если anotherNode является потомком этого узла — если это узел, один из дочерних узлов этого узла или потомок одного из дочерних узлов этого узла.
boolean isNodeRelated(DefaultMutableTreeNode aNode)
Возвращает true, тогда и только тогда, когда aNode находится в том же дереве, что и этот узел.
boolean isNodeSibling(TreeNode anotherNode)
Возвращает true, если anotherNode является братом (имеет того же родителя, что и) этого узла.
boolean isRoot()
Возвращает true, если этот узел является корнем дерева.
Enumeration<TreeNode> pathFromAncestorEnumeration(TreeNode ancestor)
Создаёт и возвращает перечисление, которое следует по пути от ancestor к этому узлу.
Enumeration<TreeNode> postorderEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обхода после.
Enumeration<TreeNode> preorderEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обхода вперед.
void remove(int childIndex)
Удаляет дочерний узел по указанному индексу из дочерних узлов этого узла и устанавливает родителя этого узла в null.
void remove(MutableTreeNode aChild)
Удаляет aChild из массива дочерних узлов этого узла, присваивая ему родителя null.
void removeAllChildren()
Удаляет всех дочерних узлов этого узла, установив их родителей в null.
void removeFromParent()
Удаляет поддерево, укоренённое в этом узле, из дерева, присвоив этому узлу родителя null.
void setAllowsChildren(boolean allows)
Определяет, разрешено ли этому узлу иметь дочерние узлы или нет.
void setParent(MutableTreeNode newParent)
Устанавливает родителя этого узла в newParent но не изменяет массив дочерних узлов родителя.
void setUserObject(Object userObject)
Устанавливает пользовательский объект для этого узла в userObject.
String toString()
Возвращает результат отправки toString() в пользовательский объект этого узла или пустую строку, если у узла нет пользовательского объекта.

Методы, объявленные в классе java.lang.Object

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

Подробное описание полей

EMPTY_ENUMERATION

public static final Enumeration<TreeNode> EMPTY_ENUMERATION
Перечисление, которое всегда пустое. Используется, когда запрашивается перечисление дочерних элементов узла-листа.

parent

protected MutableTreeNode parent
родитель этого узла или null, если у этого узла нет родителя

children

protected Vector<TreeNode> children
массив дочерних элементов, может быть null, если у этого узла нет дочерних элементов

userObject

protected transient Object userObject
необязательный объект пользователя

allowsChildren

protected boolean allowsChildren
true, если узел может иметь дочерние элементы

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

DefaultMutableTreeNode

public DefaultMutableTreeNode()
Создаёт узел дерева, у которого нет родителя и нет дочерних элементов, но который допускает дочерние элементы.

DefaultMutableTreeNode

public DefaultMutableTreeNode(Object userObject)
Создаёт узел дерева без родителя, без дочерних элементов, но с возможностью иметь дочерние элементы, и инициализирует его заданным объектом пользователя.
Параметры:
userObject - объект, предоставленный пользователем, являющийся данными узла

DefaultMutableTreeNode

public DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
Создаёт узел дерева без родителя, без дочерних элементов, инициализированный заданным объектом пользователя, и позволяющий иметь дочерние элементы только если это указано.
Параметры:
userObject - объект, предоставленный пользователем, являющийся данными узла
allowsChildren - если true, узел может иметь дочерние узлы, в противном случае он всегда является узлом-листом

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

insert

public void insert(MutableTreeNode newChild, int childIndex)
Удаляет newChild из его текущего родителя (если у него есть родитель), устанавливает родителя дочернего узла в этот узел, а затем добавляет дочерний узел в массив дочерних элементов этого узла по индексу childIndex. newChild не должен быть null и не должен быть предком этого узла.
Определено в:
insert в интерфейсе MutableTreeNode
Параметры:
newChild - MutableTreeNode для вставки в качестве дочернего элемента этого узла
childIndex - индекс в массиве дочерних элементов этого узла, где должен быть вставлен этот узел
Исключения:
ArrayIndexOutOfBoundsException - если childIndex выходит за пределы допустимых значений
IllegalArgumentException - если newChild равен null или является предком этого узла
IllegalStateException - если этот узел не допускает дочерние элементы
См. также:
  • isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

remove

public void remove(int childIndex)
Удаляет дочерний элемент по указанному индексу из дочерних элементов этого узла и устанавливает родителя этого узла в null. Дочерний узел для удаления должен быть MutableTreeNode.
Определено в:
remove в интерфейсе MutableTreeNode
Параметры:
childIndex - индекс в массиве дочерних элементов этого узла для удаляемого дочернего элемента
Исключения:
ArrayIndexOutOfBoundsException - если childIndex выходит за пределы допустимых значений

setParent

public void setParent(MutableTreeNode newParent)
Устанавливает родителя этого узла в newParent , но не изменяет массив дочерних элементов родителя. Этот метод вызывается из insert() и remove() для переназначения родителя дочернего элемента, он не должен вызываться из других мест.
Определено в:
setParent в интерфейсе MutableTreeNode
Параметры:
newParent - новый родитель этого узла

getParent

public TreeNode getParent()
Возвращает родителя этого узла или null, если у этого узла нет родителя.
Определено в:
getParent в интерфейсе TreeNode
Возвращает:
родительский узел TreeNode этого узла или null, если у этого узла нет родителя

getChildAt

public TreeNode getChildAt(int index)
Возвращает дочерний элемент по указанному индексу в массиве дочерних элементов этого узла.
Определено в:
getChildAt в интерфейсе TreeNode
Параметры:
index - индекс в массиве дочерних элементов этого узла
Возвращает:
узел TreeNode в массиве дочерних элементов этого узла по указанному индексу
Исключения:
ArrayIndexOutOfBoundsException - если index выходит за пределы допустимых значений

getChildCount

public int getChildCount()
Возвращает количество дочерних элементов этого узла.
Определено в:
getChildCount в интерфейсе TreeNode
Возвращает:
целое число, обозначающее количество дочерних элементов этого узла

getIndex

public int getIndex(TreeNode aChild)
Возвращает индекс указанного дочернего элемента в массиве дочерних элементов этого узла. Если указанный узел не является дочерним элементом этого узла, возвращает -1. Этот метод выполняет линейный поиск и имеет сложность O(n), где n — количество дочерних элементов.
Определено в:
getIndex в интерфейсе TreeNode
Параметры:
aChild - узел TreeNode для поиска среди дочерних элементов этого узла
Возвращает:
целое число, обозначающее индекс узла в массиве дочерних элементов этого узла, или -1 если указанный узел не является дочерним элементом этого узла
Исключения:
IllegalArgumentException - если aChild равен null

children

public Enumeration<TreeNode> children()
Создаёт и возвращает перечисление дочерних элементов этого узла в порядке следования. Изменение массива дочерних элементов этого узла делает недействительными все перечисления дочерних элементов, созданные до изменения.
Определено в:
children в интерфейсе TreeNode
Возвращает:
перечисление дочерних элементов этого узла

setAllowsChildren

public void setAllowsChildren(boolean allows)
Определяет, разрешено ли этому узлу иметь дочерние элементы. Если allows равно false, все дочерние элементы этого узла удаляются.

Примечание: по умолчанию узел допускает дочерние элементы.

Параметры:
allows - true, если этот узел может иметь дочерние элементы

getAllowsChildren

public boolean getAllowsChildren()
Возвращает true, если этому узлу разрешено иметь дочерние элементы.
Определено в:
getAllowsChildren в интерфейсе TreeNode
Возвращает:
true, если этому узлу разрешены дочерние элементы, иначе false

setUserObject

public void setUserObject(Object userObject)
Устанавливает объект пользователя для этого узла в userObject.
Определено в:
setUserObject в интерфейсе MutableTreeNode
Параметры:
userObject - объект, являющийся данными, указанными пользователем для этого узла
См. также:
  • getUserObject()
  • toString()

getUserObject

public Object getUserObject()
Возвращает объект пользователя этого узла.
Возвращает:
объект, сохранённый в этом узле пользователем
См. также:
  • setUserObject(java.lang.Object)
  • toString()

removeFromParent

public void removeFromParent()
Удаляет поддерево, укоренённое в этом узле, из дерева, устанавливая для этого узла родителя null. Не делает ничего, если этот узел является корнем своего дерева.
Определено в:
removeFromParent в интерфейсе MutableTreeNode

remove

public void remove(MutableTreeNode aChild)
Удаляет aChild из массива дочерних элементов этого узла, устанавливая для него родителя null.
Определено в:
remove в интерфейсе MutableTreeNode
Параметры:
aChild - дочерний элемент этого узла для удаления
Исключения:
IllegalArgumentException - если aChild равен null или не является дочерним элементом этого узла

removeAllChildren

public void removeAllChildren()
Удаляет всех дочерних элементов этого узла, устанавливая их родителей в null. Если у этого узла нет дочерних элементов, этот метод ничего не делает.

add

public void add(MutableTreeNode newChild)
Удаляет newChild из его родителя и делает его дочерним элементом этого узла, добавив его в конец массива дочерних элементов этого узла.
Параметры:
newChild - узел для добавления в качестве дочернего элемента этого узла
Исключения:
IllegalArgumentException - если newChild равен null
IllegalStateException - если этот узел не допускает дочерние элементы
См. также:
  • insert(javax.swing.tree.MutableTreeNode, int)

isNodeAncestor

public boolean isNodeAncestor(TreeNode anotherNode)
Возвращает true, если anotherNode является предком данного узла — если это сам узел, родитель данного узла или предок родителя данного узла. (Узел считается предком самого себя.) Если anotherNode равно null, метод возвращает false. Данная операция в худшем случае имеет сложность O(h), где h — расстояние от корня до данного узла.
Parameters:
anotherNode - узел, проверяемый на роль предка данного узла
Returns:
true, если данный узел является потомком anotherNode
See Also:
  • isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
  • getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)

isNodeDescendant

public boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
Возвращает true, если anotherNode является потомком данного узла — если это сам узел, один из потомков данного узла или потомок одного из потомков данного узла. Узел считается потомком самого себя. Если anotherNode равно null, возвращается false. Данная операция в худшем случае имеет сложность O(h), где h — расстояние от корня до anotherNode.
Parameters:
anotherNode - узел, проверяемый на роль потомка данного узла
Returns:
true, если данный узел является предком anotherNode
See Also:
  • isNodeAncestor(javax.swing.tree.TreeNode)
  • getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)

getSharedAncestor

public TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)
Возвращает ближайшего общего предка данного узла и aNode. Возвращает null, если такого предка не существует — если данный узел и aNode находятся в разных деревьях или если aNode равно null. Узел считается предком самого себя.
Parameters:
aNode - узел, для которого нужно найти общего предка
Returns:
ближайший общий предок данного узла и aNode, или null, если такого предка нет
See Also:
  • isNodeAncestor(javax.swing.tree.TreeNode)
  • isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

isNodeRelated

public boolean isNodeRelated(DefaultMutableTreeNode aNode)
Возвращает true, если и только если aNode находится в том же дереве, что и данный узел. Возвращает false, если aNode равно null.
Parameters:
aNode - узел, для которого нужно проверить связь
Returns:
true, если aNode находится в том же дереве, что и данный узел; false, если aNode равно null
See Also:
  • getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)
  • getRoot()

getDepth

public int getDepth()
Возвращает глубину дерева, укоренённого в данном узле — наибольшее расстояние от данного узла до листа. Если у данного узла нет потомков, возвращает 0. Данная операция значительно дороже, чем getLevel(), так как требует обхода всего дерева, укоренённого в данном узле.
Returns:
глубина дерева, корнем которого является данный узел
See Also:
  • getLevel()

getLevel

public int getLevel()
Возвращает количество уровней над данным узлом — расстояние от корня до данного узла. Если данный узел является корнем, возвращает 0.
Returns:
количество уровней над данным узлом
See Also:
  • getDepth()

getPath

public TreeNode[] getPath()
Возвращает путь от корня до данного узла. Последний элемент в пути — данный узел.
Returns:
массив объектов TreeNode, представляющий путь, где первый элемент — корень, а последний — данный узел.

getPathToRoot

protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
Строит массив предков узла до корня включительно, где исходный узел — последний элемент в массиве. Длина возвращаемого массива соответствует глубине узла в дереве.
Parameters:
aNode - TreeNode, для которого нужно получить путь
depth - целое число, указывающее количество шагов, уже сделанных к корню (при рекурсивных вызовах), используется для определения размера возвращаемого массива
Returns:
массив TreeNode, представляющий путь от корня до указанного узла

getUserObjectPath

public Object[] getUserObjectPath()
Возвращает путь объектов пользователя от корня до данного узла. Если у некоторых узлов в пути отсутствуют объекты пользователя, возвращаемый путь будет содержать null.
Returns:
путь объектов пользователя от корня до данного узла

getRoot

public TreeNode getRoot()
Возвращает корень дерева, содержащего данный узел. Корень — это предок с родительским элементом null.
Returns:
корень дерева, содержащего данный узел
See Also:
  • isNodeAncestor(javax.swing.tree.TreeNode)

isRoot

public boolean isRoot()
Возвращает true, если данный узел является корнем дерева. Корень — единственный узел в дереве с родительским элементом null; каждое дерево имеет ровно один корень.
Returns:
true, если данный узел является корнем своего дерева

getNextNode

public DefaultMutableTreeNode getNextNode()
Возвращает узел, следующий за данным узлом в обходе дерева этого узла в прямом порядке. Возвращает null, если данный узел является последним узлом обхода. Это неэффективный способ обхода всего дерева; используйте перечисление вместо этого.
Returns:
узел, следующий за данным узлом в обходе в прямом порядке, или null, если данный узел последний
See Also:
  • preorderEnumeration()

getPreviousNode

public DefaultMutableTreeNode getPreviousNode()
Возвращает узел, предшествующий данному узлу в обходе дерева этого узла в прямом порядке. Возвращает null если данный узел является первым узлом обхода — корнем дерева. Это неэффективный способ обхода всего дерева; используйте перечисление вместо этого.
Returns:
узел, предшествующий данному узлу в обходе в прямом порядке, или null, если данный узел первый
See Also:
  • preorderEnumeration()

preorderEnumeration

public Enumeration<TreeNode> preorderEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в прямом порядке. Первый узел, возвращаемый методом перечисления nextElement(), — это данный узел.

Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все созданные перечисления до момента изменения.

Returns:
перечисление для обхода дерева в прямом порядке
See Also:
  • postorderEnumeration()

postorderEnumeration

public Enumeration<TreeNode> postorderEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в обратном порядке. Первый узел, возвращаемый методом перечисления nextElement(), — это самый левый лист. Это то же самое, что обход в глубину.
Returns:
перечисление для обхода дерева в обратном порядке
See Also:
  • depthFirstEnumeration()
  • preorderEnumeration()

breadthFirstEnumeration

public Enumeration<TreeNode> breadthFirstEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в ширину. Первый узел, возвращаемый методом перечисления nextElement(), — это данный узел.

Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все созданные перечисления до момента изменения.

Returns:
перечисление для обхода дерева в ширину
See Also:
  • depthFirstEnumeration()

depthFirstEnumeration

public Enumeration<TreeNode> depthFirstEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в глубину. Первый узел, возвращаемый методом перечисления nextElement(), — это самый левый лист. Это то же самое, что обход в обратном порядке.
Returns:
перечисление для обхода дерева в глубину
See Also:
  • breadthFirstEnumeration()
  • postorderEnumeration()

pathFromAncestorEnumeration

public Enumeration<TreeNode> pathFromAncestorEnumeration(TreeNode ancestor)
Создаёт и возвращает перечисление, которое следует по пути от ancestor к этому узлу. Метод перечисления nextElement() сначала возвращает ancestor, затем потомка ancestor, являющегося предком этого узла, и так далее, и, наконец, возвращает этот узел. Создание перечисления имеет сложность O(m), где m — количество узлов между этим узлом и ancestor, включительно. Каждый вызов метода nextElement() имеет сложность O(1).

Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до этого изменения.

Parameters:
ancestor - узел, с которого начинается перечисление
Returns:
перечисление для следования по пути от предка этого узла к самому узлу
Throws:
IllegalArgumentException - если ancestor не является предком этого узла
See Also:
  • isNodeAncestor(javax.swing.tree.TreeNode)
  • isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

isNodeChild

public boolean isNodeChild(TreeNode aNode)
Возвращает true, если aNode является потомком этого узла. Если aNode равно null, этот метод возвращает false.
Parameters:
aNode - узел, для определения является ли он потомком
Returns:
true, если aNode является потомком этого узла; false, если aNode равно null

getFirstChild

public TreeNode getFirstChild()
Возвращает первого потомка этого узла. Если у этого узла нет потомков, выбрасывает исключение NoSuchElementException.
Returns:
первый потомок этого узла
Throws:
NoSuchElementException - если у этого узла нет потомков

getLastChild

public TreeNode getLastChild()
Возвращает последнего потомка этого узла. Если у этого узла нет потомков, выбрасывает исключение NoSuchElementException.
Returns:
последний потомок этого узла
Throws:
NoSuchElementException - если у этого узла нет потомков

getChildAfter

public TreeNode getChildAfter(TreeNode aChild)
Возвращает потомка в массиве потомков этого узла, который сразу следует за aChild, который должен быть потомком этого узла. Если aChild является последним потомком, возвращает null. Этот метод выполняет линейный поиск потомков этого узла для aChild и имеет сложность O(n), где n — количество потомков; для обхода всего массива потомков используйте перечисление вместо этого метода.
Parameters:
aChild - узел-потомок, для поиска следующего потомка после него
Returns:
потомок этого узла, который сразу следует за aChild
Throws:
IllegalArgumentException - если aChild равен null или не является потомком этого узла
See Also:
  • children

getChildBefore

public TreeNode getChildBefore(TreeNode aChild)
Возвращает потомка в массиве потомков этого узла, который сразу предшествует aChild, который должен быть потомком этого узла. Если aChild является первым потомком, возвращает null. Этот метод выполняет линейный поиск потомков этого узла для aChild и имеет сложность O(n), где n — количество потомков.
Parameters:
aChild - узел-потомок, для поиска предыдущего потомка перед ним
Returns:
потомок этого узла, который сразу предшествует aChild
Throws:
IllegalArgumentException - если aChild равен null или не является потомком этого узла

isNodeSibling

public boolean isNodeSibling(TreeNode anotherNode)
Возвращает true, если anotherNode является братом (имеет того же родителя, что и) этого узла. Узел является своим собственным братом. Если anotherNode равен null, возвращает false.
Parameters:
anotherNode - узел, для проверки на роль брата этого узла
Returns:
true, если anotherNode является братом этого узла

getSiblingCount

public int getSiblingCount()
Возвращает количество братьев этого узла. Узел является своим собственным братом (если у него нет родителя или нет братьев, этот метод возвращает 1).
Returns:
количество братьев этого узла

getNextSibling

public DefaultMutableTreeNode getNextSibling()
Возвращает следующего брата этого узла в массиве потомков родителя. Возвращает null, если у этого узла нет родителя или он является последним потомком родителя. Этот метод выполняет линейный поиск со сложностью O(n), где n — количество потомков; для обхода всего массива используйте перечисление потомков родителя вместо этого метода.
Returns:
брат этого узла, который сразу следует за ним
See Also:
  • children

getPreviousSibling

public DefaultMutableTreeNode getPreviousSibling()
Возвращает предыдущего брата этого узла в массиве потомков родителя. Возвращает null, если у этого узла нет родителя или он является первым потомком родителя. Этот метод выполняет линейный поиск со сложностью O(n), где n — количество потомков.
Returns:
брат этого узла, который сразу предшествует ему

isLeaf

public boolean isLeaf()
Возвращает true, если у этого узла нет потомков. Чтобы отличить узлы без потомков от узлов, которые не могут иметь потомков (например, чтобы отличить файлы от пустых каталогов), используйте этот метод в сочетании с getAllowsChildren
Specified by:
isLeaf in interface TreeNode
Returns:
true, если у этого узла нет потомков
See Also:
  • getAllowsChildren()

getFirstLeaf

public DefaultMutableTreeNode getFirstLeaf()
Находит и возвращает первый лист, являющийся потомком этого узла — либо этот узел, либо первый лист первого потомка. Возвращает этот узел, если он является листом.
Returns:
первый лист в поддереве, укоренённом в этом узле
See Also:
  • isLeaf()
  • isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

getLastLeaf

public DefaultMutableTreeNode getLastLeaf()
Находит и возвращает последний лист, являющийся потомком этого узла — либо этот узел, либо последний лист последнего потомка. Возвращает этот узел, если он является листом.
Returns:
последний лист в поддереве, укоренённом в этом узле
See Also:
  • isLeaf()
  • isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

getNextLeaf

public DefaultMutableTreeNode getNextLeaf()
Возвращает лист, следующий за этим узлом, или null, если этот узел является последним листом в дереве.

В этой реализации интерфейса MutableNode, эта операция очень неэффективна. Для определения следующего узла этот метод сначала выполняет линейный поиск в списке потомков родителя, чтобы найти текущий узел.

Такая реализация подходит для коротких обходов от известной позиции. Но для обхода всех листьев в дереве следует использовать depthFirstEnumeration для перечисления узлов в дереве и использовать isLeaf для каждого узла, чтобы определить, является ли он листом.

Returns:
возвращает следующий лист после этого узла
See Also:
  • depthFirstEnumeration()
  • isLeaf()

getPreviousLeaf

public DefaultMutableTreeNode getPreviousLeaf()
Возвращает лист, предшествующий этому узлу, или null, если этот узел является первым листом в дереве.

В этой реализации интерфейса MutableNode, эта операция очень неэффективна. Для определения предыдущего узла этот метод сначала выполняет линейный поиск в списке потомков родителя, чтобы найти текущий узел.

Такая реализация подходит для коротких обходов от известной позиции. Но для обхода всех листьев в дереве следует использовать depthFirstEnumeration для перечисления узлов в дереве и использовать isLeaf для каждого узла, чтобы определить, является ли он листом.

Returns:
возвращает лист, предшествующий этому узлу
See Also:
  • depthFirstEnumeration()
  • isLeaf()

getLeafCount

public int getLeafCount()
Возвращает общее количество листьев, которые являются потомками этого узла. Если этот узел является листом, возвращает 1. Этот метод имеет сложность O(n), где n — количество потомков этого узла.
Returns:
количество листьев под этим узлом
See Also:
  • isNodeAncestor(javax.swing.tree.TreeNode)

toString

public String toString()
Возвращает результат вызова toString() для пользовательского объекта этого узла или пустую строку, если у узла нет пользовательского объекта.
Overrides:
toString в классе Object
Returns:
строковое представление объекта.
See Also:
  • getUserObject()

clone

public Object clone()
Переопределено для того, чтобы сделать clone общедоступным. Возвращает неглубокую копию этого узла; новый узел не имеет родителя или дочерних элементов и имеет ссылку на тот же объект пользователя, если таковой имеется.
Overrides:
clone в классе Object
Возвращает:
копию этого узла
См. также:
  • Cloneable

© 1993, 2023, 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/21/docs/api/java.desktop/javax/swing/tree/DefaultMutableTreeNode.html

Spec-Zone.ru

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