Spec-Zone.ru › OpenJDK 17

Класс 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()
Возвращает путь объекта пользователя от корня до данного узла. Если некоторые TreeNode в пути имеют null объекты пользователя, возвращаемый путь будет содержать 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, 2021, 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/17/docs/api/java.desktop/javax/swing/tree/DefaultMutableTreeNode.html

Spec-Zone.ru

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