Spec-Zone.ru › OpenJDK 25

Класс DefaultMutableTreeNode

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

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

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

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

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

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

Методы, объявленные в классе 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(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
Возвращает:
значение int, равное количеству дочерних узлов этого узла

getIndex

public int getIndex(TreeNode aChild)
Возвращает индекс указанного дочернего узла в массиве дочерних узлов этого узла. Если указанный узел не является дочерним для этого узла, возвращает -1. Этот метод выполняет линейный поиск и имеет сложность O(n), где n — количество дочерних узлов.
Переопределяет:
getIndex в интерфейсе TreeNode
Параметры:
aChild — узел TreeNode, который нужно найти среди дочерних узлов этого узла
Возвращает:
значение int, равное индексу узла в массиве дочерних узлов этого узла, или -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(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(MutableTreeNode, int)

isNodeAncestor

public boolean isNodeAncestor(TreeNode anotherNode)
Возвращает true, если anotherNode является предком этого узла: то есть совпадает с этим узлом, является его родителем или предком его родителя. (Обратите внимание, что узел считается предком самого себя.) Если anotherNode равен null, метод возвращает false. В худшем случае сложность этой операции составляет O(h), где h — расстояние от корня до этого узла.
Параметры:
anotherNode — узел, который нужно проверить на то, является ли он предком этого узла
Возвращает:
true, если этот узел является потомком anotherNode
См. также:
  • isNodeDescendant(DefaultMutableTreeNode)
  • getSharedAncestor(DefaultMutableTreeNode)

isNodeDescendant

public boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
Возвращает true, если anotherNode является потомком этого узла: то есть совпадает с этим узлом, является одним из его дочерних узлов или потомком одного из дочерних узлов этого узла. Обратите внимание, что узел считается потомком самого себя. Если anotherNode равен null, возвращает false. В худшем случае сложность этой операции составляет O(h), где h — расстояние от корня до anotherNode.
Параметры:
anotherNode — узел, который нужно проверить на то, является ли он потомком этого узла
Возвращает:
true, если этот узел является предком anotherNode
См. также:
  • isNodeAncestor(TreeNode)
  • getSharedAncestor(DefaultMutableTreeNode)

getSharedAncestor

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

isNodeRelated

public boolean isNodeRelated(DefaultMutableTreeNode aNode)
Возвращает true тогда и только тогда, когда aNode находится в том же дереве, что и этот узел. Возвращает false, если aNode равен null.
Параметры:
aNode — узел, с которым нужно найти общего предка
Возвращает:
true, если aNode находится в том же дереве, что и этот узел; false, если aNode равен null
См. также:
  • getSharedAncestor(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 — значение int, задающее количество шагов, уже сделанных в направлении корня (при рекурсивных вызовах); используется для определения размера возвращаемого массива
Возвращает:
массив узлов TreeNode, задающий путь от корня до указанного узла

getUserObjectPath

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

getRoot

public TreeNode getRoot()
Возвращает корень дерева, содержащего этот узел. Корень — это предок, родитель которого равен null.
Возвращает:
корень дерева, содержащего этот узел
См. также:
  • isNodeAncestor(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(TreeNode)
  • isNodeDescendant(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(DefaultMutableTreeNode)

getLastLeaf

public DefaultMutableTreeNode getLastLeaf()
Находит и возвращает последний листовой узел, являющийся потомком этого узла, — либо сам этот узел, либо последний листовой узел последнего дочернего узла. Если этот узел является листовым, возвращает его.
Возвращает:
последний листовой узел в поддереве с корнем в этом узле
См. также:
  • isLeaf()
  • isNodeDescendant(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(TreeNode)

toString

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

clone

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

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

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/tree/DefaultMutableTreeNode.html

Spec-Zone.ru

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