Класс DefaultMutableTreeNode

Все реализованные интерфейсы:
Serializable, Cloneable, MutableTreeNode, TreeNode
Прямые известные подклассы:
JTree.DynamicUtilTreeNode
public class DefaultMutableTreeNode
extends Object
implements Cloneable, MutableTreeNode, Serializable

Узел DefaultMutableTreeNode — это узел общего назначения в структуре данных дерева. Примеры использования узлов дерева с изменяемыми свойствами см. в разделе Как использовать деревья в Java Tutorial.

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

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

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

Хотя 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 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
Возвращает:
перечисление Enumeration дочерних узлов этого узла

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 - объект Object, представляющий пользовательские данные этого узла
См. также:
getUserObject(), toString()

getUserObject

public Object getUserObject()

Возвращает объект пользователя этого узла.

Возвращает:
объект Object, сохранённый в этом узле пользователем
См. также:
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 — расстояние от корня до этого узла.

Параметры:
anotherNode - узел для проверки как предок этого узла
Возвращает:
true, если этот узел является потомком anotherNode
См. также:
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.

Параметры:
anotherNode - узел для проверки как потомок этого узла
Возвращает:
true, если этот узел является предком anotherNode
См. также:
isNodeAncestor(javax.swing.tree.TreeNode), getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)

getSharedAncestor

public TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)

Возвращает ближайшего общего предка этого узла и aNode. Возвращает null, если такого предка не существует — если этот узел и aNode находятся в разных деревьях или если aNode равен null. Узел считается предком самого себя.

Параметры:
aNode - узел для поиска общего предка с
Возвращает:
ближайший общий предок этого узла и aNode, или null, если такого предка нет
См. также:
isNodeAncestor(javax.swing.tree.TreeNode), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

isNodeRelated

public boolean isNodeRelated(DefaultMutableTreeNode aNode)

Возвращает true тогда и только тогда, когда aNode находится в том же дереве, что и этот узел. Возвращает false, если aNode равен null.

Параметры:
aNode - узел для поиска общего предка с
Возвращает:
true, если aNode находится в том же дереве, что и этот узел; false, если aNode равен null
См. также:
getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode), getRoot()

getDepth

public int getDepth()

Возвращает глубину дерева, укоренённого в этом узле — наибольшее расстояние от этого узла до листа. Если у этого узла нет дочерних узлов, возвращает 0. Эта операция намного более ресурсоёмкая, чем getLevel(), потому что ей необходимо эффективно пройти по всему дереву, укоренённому в этом узле.

Возвращает:
глубина дерева, корнем которого является этот узел
См. также:
getLevel()

getLevel

public int getLevel()

Возвращает количество уровней над этим узлом — расстояние от корня до этого узла. Если этот узел является корнем, возвращает 0.

Возвращает:
количество уровней над этим узлом
См. также:
getDepth()

getPath

public TreeNode[] getPath()

Возвращает путь от корня к этому узлу. Последний элемент в пути — это этот узел.

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

getPathToRoot

protected TreeNode[] getPathToRoot(TreeNode aNode,
                                   int depth)

Строит родителей узла до и включая корневой узел, где исходный узел — последний элемент в возвращаемом массиве. Длина возвращаемого массива задаёт глубину узла в дереве.

Параметры:
aNode - узел TreeNode, для которого требуется получить путь
depth - целое число, задающее количество шагов, уже сделанных к корню (при рекурсивных вызовах), используемое для задания размера возвращаемого массива
Возвращает:
массив TreeNodes, представляющий путь от корня до указанного узла

getUserObjectPath

public Object[] getUserObjectPath()

Возвращает путь объекта пользователя от корня к этому узлу. Если некоторые из TreeNode в пути имеют null-объекты пользователя, возвращаемый путь будет содержать null.

Возвращает:
путь объекта пользователя от корня к этому узлу

getRoot

public TreeNode getRoot()

Возвращает корень дерева, содержащего этот узел. Корень — это предок с null-родителем.

Возвращает:
корень дерева, содержащего этот узел
См. также:
isNodeAncestor(javax.swing.tree.TreeNode)

isRoot

public boolean isRoot()

Возвращает true, если этот узел является корнем дерева. Корень — единственный узел в дереве с null-родителем; каждое дерево имеет ровно один корень.

Возвращает:
true, если этот узел является корнем своего дерева

getNextNode

public DefaultMutableTreeNode getNextNode()

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

Возвращает:
узел, следующий за этим узлом в прямой обходке, или null, если этот узел последний
См. также:
preorderEnumeration()

getPreviousNode

public DefaultMutableTreeNode getPreviousNode()

Возвращает узел, предшествующий этому узлу в обходе дерева этого узла в порядке прямой обходки. Возвращает null , если этот узел является первым узлом обхода — корнем дерева. Это неэффективный способ обхода всего дерева; используйте перечисление вместо этого.

Возвращает:
узел, предшествующий этому узлу в прямой обходке, или null, если этот узел первый
См. также:
preorderEnumeration()

preorderEnumeration

public Enumeration<TreeNode> preorderEnumeration()

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

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

Возвращает:
перечисление для обхода дерева в порядке прямой обходки
См. также:
postorderEnumeration()

postorderEnumeration

public Enumeration<TreeNode> postorderEnumeration()

Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обратной обходки. Первый узел, возвращаемый методом перечисления nextElement(), — это самый левый лист. Это то же самое, что и обход в глубину.

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

Возвращает:
перечисление для обхода дерева в порядке обратной обходки
См. также:
depthFirstEnumeration(), preorderEnumeration()

breadthFirstEnumeration

public Enumeration<TreeNode> breadthFirstEnumeration()

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

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

Возвращает:
перечисление для обхода дерева в порядке обхода по ширине
См. также:
depthFirstEnumeration()

depthFirstEnumeration

public Enumeration<TreeNode> depthFirstEnumeration()

Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обхода в глубину. Первый узел, возвращаемый методом перечисления nextElement(), — это самый левый лист. Это то же самое, что и обратный обход.

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

Возвращает:
перечисление для обхода дерева в порядке обхода в глубину
См. также:
breadthFirstEnumeration(), postorderEnumeration()

pathFromAncestorEnumeration

public Enumeration<TreeNode> pathFromAncestorEnumeration(TreeNode ancestor)

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

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

Параметры:
ancestor - узел, с которого начать перечисление
Возвращает:
перечисление для следования по пути от предка этого узла к этому узлу
Исключения:
IllegalArgumentException - если ancestor не является предком этого узла
См. также:
isNodeAncestor(javax.swing.tree.TreeNode), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

isNodeChild

public boolean isNodeChild(TreeNode aNode)

Возвращает true, если aNode является потомком этого узла. Если aNode равно null, этот метод возвращает false.

Параметры:
aNode - узел, для определения является ли он потомком
Возвращает:
true, если aNode является потомком этого узла; false, если aNode равно null

getFirstChild

public TreeNode getFirstChild()

Возвращает первого потомка этого узла. Если у этого узла нет потомков, выбрасывает исключение NoSuchElementException.

Возвращает:
первого потомка этого узла
Исключения:
NoSuchElementException - если у этого узла нет потомков

getLastChild

public TreeNode getLastChild()

Возвращает последнего потомка этого узла. Если у этого узла нет потомков, выбрасывает исключение NoSuchElementException.

Возвращает:
последнего потомка этого узла
Исключения:
NoSuchElementException - если у этого узла нет потомков

getChildAfter

public TreeNode getChildAfter(TreeNode aChild)

Возвращает потомка в массиве потомков этого узла, который непосредственно следует за aChild, который должен быть потомком этого узла. Если aChild является последним потомком, возвращает null. Этот метод выполняет линейный поиск потомков этого узла для aChild и имеет сложность O(n), где n — количество потомков; для обхода всего массива потомков используйте перечисление вместо этого.

Параметры:
aChild - узел-потомок, для которого нужно найти следующий узел
Возвращает:
потомка этого узла, который непосредственно следует за aChild
Исключения:
IllegalArgumentException - если aChild равен null или не является потомком этого узла
См. также:
children

getChildBefore

public TreeNode getChildBefore(TreeNode aChild)

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

Параметры:
aChild - узел-потомок, для которого нужно найти предыдущий узел
Возвращает:
потомка этого узла, который непосредственно предшествует aChild
Исключения:
IllegalArgumentException - если aChild равен null или не является потомком этого узла

isNodeSibling

public boolean isNodeSibling(TreeNode anotherNode)

Возвращает true, если anotherNode является братом этого узла (имеет того же родителя). Узел является своим собственным братом. Если anotherNode равен null, возвращает false.

Параметры:
anotherNode - узел для проверки как брата этого узла
Возвращает:
true, если anotherNode является братом этого узла

getSiblingCount

public int getSiblingCount()

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

Возвращает:
количество братьев этого узла

getNextSibling

public DefaultMutableTreeNode getNextSibling()

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

Возвращает:
брата этого узла, который непосредственно следует за этим узлом
См. также:
children

getPreviousSibling

public DefaultMutableTreeNode getPreviousSibling()

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

Возвращает:
соседний узел этого узла, который непосредственно предшествует этому узлу

isLeaf

public boolean isLeaf()

Возвращает true, если у этого узла нет дочерних элементов. Чтобы отличить узлы без дочерних элементов от узлов, которые не могут иметь дочерние элементы (например, чтобы отличить файлы от пустых каталогов), используйте этот метод в сочетании с getAllowsChildren

Определено в:
isLeaf в интерфейсе TreeNode
Возвращает:
true, если у этого узла нет дочерних элементов
См. также:
getAllowsChildren()

getFirstLeaf

public DefaultMutableTreeNode getFirstLeaf()

Находит и возвращает первый лист, являющийся потомком этого узла — либо этот узел, либо первый лист первого дочернего элемента. Возвращает этот узел, если он является листом.

Возвращает:
первый лист в поддереве, укорененном в этом узле
См. также:
isLeaf(), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

getLastLeaf

public DefaultMutableTreeNode getLastLeaf()

Находит и возвращает последний лист, являющийся потомком этого узла — либо этот узел, либо последний лист последнего дочернего элемента. Возвращает этот узел, если он является листом.

Возвращает:
последний лист в поддереве, укорененном в этом узле
См. также:
isLeaf(), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

getNextLeaf

public DefaultMutableTreeNode getNextLeaf()

Возвращает лист после этого узла или null, если этот узел является последним листом в дереве.

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

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

Возвращает:
возвращает следующий лист после этого узла
См. также:
depthFirstEnumeration(), isLeaf()

getPreviousLeaf

public DefaultMutableTreeNode getPreviousLeaf()

Возвращает лист перед этим узлом или null, если этот узел является первым листом в дереве.

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

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

Возвращает:
возвращает лист перед этим узлом
См. также:
depthFirstEnumeration(), isLeaf()

getLeafCount

public int getLeafCount()

Возвращает общее количество листьев, являющихся потомками этого узла. Если этот узел является листом, возвращает 1. Этот метод имеет сложность O(n), где n — количество потомков этого узла.

Возвращает:
количество листьев под этим узлом
См. также:
isNodeAncestor(javax.swing.tree.TreeNode)

toString

public String toString()

Возвращает результат отправки toString() в объект пользователя этого узла или пустую строку, если у узла нет объекта пользователя.

Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта.
См. также:
getUserObject()

clone

public Object clone()

Переопределено, чтобы сделать clone общедоступным. Возвращает неглубокую копию этого узла; новый узел не имеет родителя или дочерних элементов и ссылается на тот же объект пользователя, если таковой имеется.

Переопределяет:
clone в классе Object
Возвращает:
копию этого узла
См. также:
Cloneable

© 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/DefaultMutableTreeNode.html

Spec-Zone .ru
спецификации, руководства, описания, API