Spec-Zone.ru › OpenJDK 24

Класс DefaultMutableTreeNode

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

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

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

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

Хотя DefaultMutableTreeNode реализует интерфейс MutableTreeNode и позволит вам добавить любое реализацию MutableTreeNode, не все методы DefaultMutableTreeNode будут применимы ко всем реализациям MutableTreeNode. Особенно в случае с некоторыми перечислениями, использование некоторых методов предполагает, что 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
Возвращает:
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 - объект, который составляет данные, указанные пользователем для этого узла
См. также:
  • 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 из его родителя и делает его дочерним элементом этого узла, добавив его в конец массива дочерних элементов этого узла.
Parameters:
newChild - узел для добавления в качестве дочернего элемента этого узла
Throws:
IllegalArgumentException - если newChild имеет значение null
IllegalStateException - если этот узел не допускает дочерние элементы
See Also:
  • 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:
массив TreeNodes, представляющий путь от корня до указанного узла

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 для каждого узла, чтобы определить, является ли он листом.

Возвращает:
возвращает лист, предшествующий данному узлу
См. также:
  • 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, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/tree/DefaultMutableTreeNode.html

Spec-Zone.ru

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