Класс 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 Tutorial.
Узел дерева может иметь не более одного родительского узла и 0 или более дочерних узлов. DefaultMutableTreeNode предоставляет операции для проверки и изменения родительского узла и дочерних узлов, а также операции для проверки дерева, частью которого является узел. Дерево узла — это множество всех узлов, которые можно достичь, начав с узла и пройдя все возможные связи к родительским и дочерним узлам. Узел без родительского узла является корнем своего дерева; узел без дочерних узлов является листом. Дерево может состоять из многих поддеревьев, каждый узел выступая в качестве корня для своего поддерева.
Этот класс предоставляет перечисления для эффективного обхода дерева или поддерева в различных порядках или для следования пути между двумя узлами. Узел DefaultMutableTreeNode также может содержать ссылку на пользовательский объект, использование которого остается на усмотрение пользователя. Запрашивая строковое представление DefaultMutableTreeNode с помощью toString(), возвращается строковое представление его пользовательского объекта.
Этот класс не потокобезопасен. Если вы планируете использовать DefaultMutableTreeNode (или дерево узлов TreeNode) в нескольких потоках, вам необходимо выполнить собственную синхронизацию. Хорошей практикой является синхронизация на корневом узле дерева.
Хотя DefaultMutableTreeNode реализует интерфейс MutableTreeNode и позволит вам добавить любое реализацию MutableTreeNode, не все методы в DefaultMutableTreeNode будут применимы ко всем реализациям MutableTreeNodes. Особенно в отношении некоторых перечислений, использование некоторых из этих методов предполагает, что DefaultMutableTreeNode содержит только экземпляры DefaultMutableNode. Все методы TreeNode/MutableTreeNode будут вести себя так, как определено, независимо от добавленных реализаций.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими версиями Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, работающими с одной версией Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans™ была добавлена в пакет java.beans. См. XMLEncoder.
- См. также:
-
MutableTreeNode, Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected boolean |
allowsChildren |
true, если узел может иметь дочерние узлы |
protected Vector<TreeNode> |
children |
массив дочерних узлов, может быть null, если у этого узла нет дочерних узлов |
static Enumeration<TreeNode> |
EMPTY_ENUMERATION |
перечисление, которое всегда пустое. |
protected MutableTreeNode |
parent |
родительский узел этого узла или null, если у этого узла нет родителя |
protected Object |
userObject |
необязательный пользовательский объект |
Конструкторы
| Конструктор | Описание |
|---|---|
DefaultMutableTreeNode() |
Создаёт узел дерева без родителя и дочерних узлов, но допускающий наличие дочерних узлов. |
DefaultMutableTreeNode(Object userObject) |
Создаёт узел дерева без родителя, без дочерних узлов, но допускающий наличие дочерних узлов, и инициализирует его указанным пользовательским объектом. |
DefaultMutableTreeNode(Object userObject,
boolean allowsChildren) |
Создаёт узел дерева без родителя, без дочерних узлов, инициализированный указанным пользовательским объектом, и допускающий наличие дочерних узлов только если это указано. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | add(MutableTreeNode newChild) | Удаляет |
Enumeration<TreeNode> | breadthFirstEnumeration() | Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обхода по ширине. |
Enumeration<TreeNode> | children() | Создаёт и возвращает перечисление дочерних узлов этого узла в порядке следования. |
Object | clone() | Переопределено для того, чтобы сделать клонирование публичным. |
Enumeration<TreeNode> | depthFirstEnumeration() | Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обхода по глубине. |
boolean | getAllowsChildren() | Возвращает true, если этому узлу разрешено иметь дочерние узлы. |
TreeNode | getChildAfter(TreeNode aChild) | Возвращает дочерний узел в массиве дочерних узлов этого узла, который следует сразу за |
TreeNode | getChildAt(int index) | Возвращает дочерний узел по указанному индексу в массиве дочерних узлов этого узла. |
TreeNode | getChildBefore(TreeNode 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) | Возвращает ближайшего общего предка этого узла и |
int | getSiblingCount() | Возвращает количество братьев/сестер этого узла. |
Object | getUserObject() | Возвращает пользовательский объект этого узла. |
Object[] | getUserObjectPath() | Возвращает путь пользовательского объекта от корня к этому узлу. |
void | insert(MutableTreeNode newChild,
int childIndex) | Удаляет |
boolean | isLeaf() | Возвращает true, если у этого узла нет дочерних узлов. |
boolean | isNodeAncestor(TreeNode anotherNode) | Возвращает true, если |
boolean | isNodeChild(TreeNode aNode) | Возвращает true, если |
boolean | isNodeDescendant(DefaultMutableTreeNode anotherNode) | Возвращает true, если |
boolean | isNodeRelated(DefaultMutableTreeNode aNode) | Возвращает true, если и только если |
boolean | isNodeSibling(TreeNode anotherNode) | Возвращает true, если |
boolean | isRoot() | Возвращает true, если этот узел является корнем дерева. |
Enumeration<TreeNode> | pathFromAncestorEnumeration(TreeNode ancestor) | Создаёт и возвращает перечисление, которое следует по пути от |
Enumeration<TreeNode> | postorderEnumeration() | Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обратного обхода. |
Enumeration<TreeNode> | preorderEnumeration() | Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке прямого обхода. |
void | remove(int childIndex) | Удаляет дочерний узел по указанному индексу из дочерних узлов этого узла и устанавливает родителя этого узла в null. |
void | remove(MutableTreeNode aChild) | Удаляет |
void | removeAllChildren() | Удаляет всех дочерних узлов этого узла, устанавливая их родителей в null. |
void | removeFromParent() | Удаляет поддерево, укоренённое в этом узле, из дерева, присваивая этому узлу родителя null. |
void | setAllowsChildren(boolean allows) | Определяет, разрешено ли этому узлу иметь дочерние узлы. |
void | setParent(MutableTreeNode newParent) | Устанавливает родителя этого узла в |
void | setUserObject(Object userObject) | Устанавливает пользовательский объект этого узла в |
String | toString() | Возвращает результат отправки |
Методы, объявленные в классе java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Поля
EMPTY_ENUMERATION
public static final Enumeration<TreeNode> EMPTY_ENUMERATION
Перечисление, которое всегда пусто. Используется, когда запрашивается перечисление дочерних элементов узла-листа.
parent
protected MutableTreeNode parent
родитель этого узла или null, если у этого узла нет родителя
children
protected Vector<TreeNode> children
массив дочерних элементов, может быть null, если у этого узла нет дочерних элементов
userObject
protected transient Object userObject
необязательный пользовательский объект
allowsChildren
protected boolean allowsChildren
true, если узел может иметь дочерние элементы
Конструкторы
DefaultMutableTreeNode
public DefaultMutableTreeNode()
Создаёт узел дерева, у которого нет родителя и нет дочерних элементов, но который разрешает дочерние элементы.
DefaultMutableTreeNode
public DefaultMutableTreeNode(Object userObject)
Создаёт узел дерева без родителя, без дочерних элементов, но который разрешает дочерние элементы и инициализирует его указанным пользовательским объектом.
- Параметры:
-
userObject- объект, предоставленный пользователем, который представляет данные узла
DefaultMutableTreeNode
public DefaultMutableTreeNode(Object userObject,
boolean allowsChildren) Создаёт узел дерева без родителя, без дочерних элементов, инициализированный указанным пользовательским объектом, и который разрешает дочерние элементы только при указании.
- Параметры:
-
userObject- объект, предоставленный пользователем, который представляет данные узла -
allowsChildren- если true, узел разрешается иметь дочерние узлы; в противном случае он всегда является узлом-листом
Методы
insert
public void insert(MutableTreeNode newChild,
int childIndex) Удаляет newChild из его текущего родителя (если у него есть родитель), устанавливает родителя дочернего узла в этот узел и добавляет дочерний узел в массив дочерних узлов этого узла по индексу childIndex. newChild не должен быть null и не должен быть предком этого узла.
- Определено в:
-
insertв интерфейсеMutableTreeNode - Параметры:
-
newChild- узел MutableTreeNode для вставки под этот узел -
childIndex- индекс в массиве дочерних узлов этого узла, куда должен быть вставлен этот узел - Исключения:
-
ArrayIndexOutOfBoundsException- еслиchildIndexвыходит за пределы допустимого диапазона -
IllegalArgumentException- еслиnewChildравен null или является предком этого узла -
IllegalStateException- если этот узел не позволяет иметь дочерние узлы - См. также:
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
remove
public void remove(int childIndex)
Удаляет дочерний узел по указанному индексу из дочерних узлов этого узла и устанавливает родителя этого узла в null. Дочерний узел для удаления должен быть MutableTreeNode.
- Определено в:
-
removeв интерфейсеMutableTreeNode - Параметры:
-
childIndex- индекс в массиве дочерних узлов этого узла дочернего узла, подлежащего удалению - Исключения:
-
ArrayIndexOutOfBoundsException- еслиchildIndexвыходит за пределы допустимого диапазона
setParent
public void setParent(MutableTreeNode newParent)
Устанавливает родителя этого узла в newParent но не изменяет массив дочерних узлов родителя. Этот метод вызывается из insert() и remove() для переназначения родителя дочернего узла, он не должен вызываться из других мест.
- Определено в:
-
setParentв интерфейсеMutableTreeNode - Параметры:
-
newParent- новый родитель этого узла
getParent
public TreeNode getParent()
Возвращает родителя этого узла или null, если у этого узла нет родителя.
- Определено в:
-
getParentв интерфейсеTreeNode - Возвращает:
- родительский узел TreeNode этого узла или null, если у этого узла нет родителя
getChildAt
public TreeNode getChildAt(int index)
Возвращает дочерний узел по указанному индексу в массиве дочерних узлов этого узла.
- Определено в:
-
getChildAtв интерфейсеTreeNode - Параметры:
-
index- индекс в массиве дочерних узлов этого узла - Возвращает:
- узел TreeNode в массиве дочерних узлов этого узла по указанному индексу
- Исключения:
-
ArrayIndexOutOfBoundsException- еслиindexвыходит за пределы допустимого диапазона
getChildCount
public int getChildCount()
Возвращает количество дочерних узлов этого узла.
- Определено в:
-
getChildCountв интерфейсеTreeNode - Возвращает:
- целое число, представляющее количество дочерних узлов этого узла
getIndex
public int getIndex(TreeNode aChild)
Возвращает индекс указанного дочернего узла в массиве дочерних узлов этого узла. Если указанный узел не является дочерним для этого узла, возвращает -1. Этот метод выполняет линейный поиск и имеет сложность O(n), где n — количество дочерних узлов.
- Определено в:
-
getIndexв интерфейсеTreeNode - Параметры:
-
aChild- узел TreeNode для поиска среди дочерних узлов этого узла - Возвращает:
- целое число, представляющее индекс узла в массиве дочерних узлов этого узла, или
-1если указанный узел не является дочерним для этого узла - Исключения:
-
IllegalArgumentException- еслиaChildравен null
children
public Enumeration<TreeNode> children()
Создаёт и возвращает перечисление дочерних узлов этого узла в порядке обхода вперёд. Изменение массива дочерних узлов этого узла делает недействительными все перечисления дочерних узлов, созданные до изменения.
- Определено в:
-
childrenв интерфейсеTreeNode - Возвращает:
- перечисление Enumeration дочерних узлов этого узла
setAllowsChildren
public void setAllowsChildren(boolean allows)
Определяет, разрешено ли этому узлу иметь дочерние узлы. Если allows равно false, все дочерние узлы этого узла удаляются.
Примечание: по умолчанию узел разрешает иметь дочерние узлы.
- Параметры:
-
allows- true, если этому узлу разрешено иметь дочерние узлы
getAllowsChildren
public boolean getAllowsChildren()
Возвращает true, если этому узлу разрешено иметь дочерние узлы.
- Определено в:
-
getAllowsChildrenв интерфейсеTreeNode - Возвращает:
- true, если узел разрешает дочерние узлы, иначе false
setUserObject
public void setUserObject(Object userObject)
Устанавливает объект пользователя для этого узла в userObject.
- Определено в:
-
setUserObjectв интерфейсеMutableTreeNode - Параметры:
-
userObject- объект Object, представляющий пользовательские данные этого узла - См. также:
-
getUserObject(),toString()
getUserObject
public Object getUserObject()
Возвращает объект пользователя этого узла.
- Возвращает:
- объект Object, сохранённый в этом узле пользователем
- См. также:
-
setUserObject(java.lang.Object),toString()
removeFromParent
public void removeFromParent()
Удаляет поддерево, укоренённое в этом узле, из дерева, задавая этому узлу родителя null. Ничего не делает, если этот узел является корнем своего дерева.
- Определено в:
-
removeFromParentв интерфейсеMutableTreeNode
remove
public void remove(MutableTreeNode aChild)
Удаляет aChild из массива дочерних узлов этого узла, задавая ему родителя null.
- Определено в:
-
removeв интерфейсеMutableTreeNode - Параметры:
-
aChild- дочерний узел этого узла, подлежащий удалению - Исключения:
-
IllegalArgumentException- еслиaChildравен null или не является дочерним узлом этого узла
removeAllChildren
public void removeAllChildren()
Удаляет всех дочерних узлов этого узла, устанавливая их родителей в null. Если у этого узла нет дочерних узлов, этот метод ничего не делает.
add
public void add(MutableTreeNode newChild)
Удаляет newChild из его родителя и делает его дочерним узлом этого узла, добавив его в конец массива дочерних узлов этого узла.
- Параметры:
-
newChild- узел для добавления в качестве дочернего узла этого узла - Исключения:
-
IllegalArgumentException- еслиnewChildравен null -
IllegalStateException- если этому узлу не разрешено иметь дочерние узлы - См. также:
insert(javax.swing.tree.MutableTreeNode, int)
isNodeAncestor
public boolean isNodeAncestor(TreeNode anotherNode)
Возвращает true, если anotherNode является предком этого узла — если это сам узел, родитель этого узла или предок родителя этого узла. (Примечание: узел считается предком самого себя.) Если anotherNode равен null, этот метод возвращает false. Эта операция в худшем случае имеет сложность O(h), где h — расстояние от корня до этого узла.
- Параметры:
-
anotherNode- узел для проверки как предок этого узла - Возвращает:
- true, если этот узел является потомком
anotherNode - См. также:
-
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode),getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)
isNodeDescendant
public boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
Возвращает true, если anotherNode является потомком этого узла — если это сам узел, один из дочерних узлов этого узла или потомок одного из дочерних узлов этого узла. Примечание: узел считается потомком самого себя. Если anotherNode равен null, возвращает false. Эта операция в худшем случае имеет сложность O(h), где h — расстояние от корня до anotherNode.
- Параметры:
-
anotherNode- узел для проверки как потомок этого узла - Возвращает:
- true, если этот узел является предком
anotherNode - См. также:
-
isNodeAncestor(javax.swing.tree.TreeNode),getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)
getSharedAncestor
public TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)
Возвращает ближайшего общего предка этого узла и aNode. Возвращает null, если такого предка не существует — если этот узел и aNode находятся в разных деревьях или если aNode равен null. Узел считается предком самого себя.
- Параметры:
-
aNode- узел для поиска общего предка с - Возвращает:
- ближайший общий предок этого узла и
aNode, или null, если такого предка нет - См. также:
-
isNodeAncestor(javax.swing.tree.TreeNode),isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
isNodeRelated
public boolean isNodeRelated(DefaultMutableTreeNode aNode)
Возвращает true тогда и только тогда, когда aNode находится в том же дереве, что и этот узел. Возвращает false, если aNode равен null.
- Параметры:
-
aNode- узел для поиска общего предка с - Возвращает:
- true, если
aNodeнаходится в том же дереве, что и этот узел; false, еслиaNodeравен null - См. также:
-
getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode),getRoot()
getDepth
public int getDepth()
Возвращает глубину дерева, укоренённого в этом узле — наибольшее расстояние от этого узла до листа. Если у этого узла нет дочерних узлов, возвращает 0. Эта операция намного более ресурсоёмкая, чем getLevel(), потому что ей необходимо эффективно пройти по всему дереву, укоренённому в этом узле.
- Возвращает:
- глубина дерева, корнем которого является этот узел
- См. также:
getLevel()
getLevel
public int getLevel()
Возвращает количество уровней над этим узлом — расстояние от корня до этого узла. Если этот узел является корнем, возвращает 0.
- Возвращает:
- количество уровней над этим узлом
- См. также:
getDepth()
getPath
public TreeNode[] getPath()
Возвращает путь от корня к этому узлу. Последний элемент в пути — это этот узел.
- Возвращает:
- массив объектов TreeNode, представляющий путь, где первый элемент в пути — корень, а последний — этот узел.
getPathToRoot
protected TreeNode[] getPathToRoot(TreeNode aNode,
int depth) Строит родителей узла до и включая корневой узел, где исходный узел — последний элемент в возвращаемом массиве. Длина возвращаемого массива задаёт глубину узла в дереве.
- Параметры:
-
aNode- узел TreeNode, для которого требуется получить путь -
depth- целое число, задающее количество шагов, уже сделанных к корню (при рекурсивных вызовах), используемое для задания размера возвращаемого массива - Возвращает:
- массив TreeNodes, представляющий путь от корня до указанного узла
getUserObjectPath
public Object[] getUserObjectPath()
Возвращает путь объекта пользователя от корня к этому узлу. Если некоторые из TreeNode в пути имеют null-объекты пользователя, возвращаемый путь будет содержать null.
- Возвращает:
- путь объекта пользователя от корня к этому узлу
getRoot
public TreeNode getRoot()
Возвращает корень дерева, содержащего этот узел. Корень — это предок с null-родителем.
- Возвращает:
- корень дерева, содержащего этот узел
- См. также:
isNodeAncestor(javax.swing.tree.TreeNode)
isRoot
public boolean isRoot()
Возвращает true, если этот узел является корнем дерева. Корень — единственный узел в дереве с null-родителем; каждое дерево имеет ровно один корень.
- Возвращает:
- true, если этот узел является корнем своего дерева
getNextNode
public DefaultMutableTreeNode getNextNode()
Возвращает узел, следующий за этим узлом в обходе дерева этого узла в порядке прямой обходки. Возвращает null, если этот узел является последним узлом обхода. Это неэффективный способ обхода всего дерева; используйте перечисление вместо этого.
- Возвращает:
- узел, следующий за этим узлом в прямой обходке, или null, если этот узел последний
- См. также:
preorderEnumeration()
getPreviousNode
public DefaultMutableTreeNode getPreviousNode()
Возвращает узел, предшествующий этому узлу в обходе дерева этого узла в порядке прямой обходки. Возвращает null , если этот узел является первым узлом обхода — корнем дерева. Это неэффективный способ обхода всего дерева; используйте перечисление вместо этого.
- Возвращает:
- узел, предшествующий этому узлу в прямой обходке, или null, если этот узел первый
- См. также:
preorderEnumeration()
preorderEnumeration
public Enumeration<TreeNode> preorderEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке прямой обходки. Первый узел, возвращаемый методом перечисления nextElement(), — это этот узел.
Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.
- Возвращает:
- перечисление для обхода дерева в порядке прямой обходки
- См. также:
postorderEnumeration()
postorderEnumeration
public Enumeration<TreeNode> postorderEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обратной обходки. Первый узел, возвращаемый методом перечисления nextElement(), — это самый левый лист. Это то же самое, что и обход в глубину.
Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.
- Возвращает:
- перечисление для обхода дерева в порядке обратной обходки
- См. также:
-
depthFirstEnumeration(),preorderEnumeration()
breadthFirstEnumeration
public Enumeration<TreeNode> breadthFirstEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обхода по ширине. Первый узел, возвращаемый методом перечисления nextElement(), — это этот узел.
Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.
- Возвращает:
- перечисление для обхода дерева в порядке обхода по ширине
- См. также:
depthFirstEnumeration()
depthFirstEnumeration
public Enumeration<TreeNode> depthFirstEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обхода в глубину. Первый узел, возвращаемый методом перечисления nextElement(), — это самый левый лист. Это то же самое, что и обратный обход.
Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.
- Возвращает:
- перечисление для обхода дерева в порядке обхода в глубину
- См. также:
-
breadthFirstEnumeration(),postorderEnumeration()
pathFromAncestorEnumeration
public Enumeration<TreeNode> pathFromAncestorEnumeration(TreeNode ancestor)
Создаёт и возвращает перечисление, которое следует по пути от ancestor к этому узлу. Метод перечисления nextElement() сначала возвращает ancestor, затем ребёнка ancestor, который является предком этого узла, и так далее, и, наконец, возвращает этот узел. Создание перечисления имеет сложность O(m), где m — количество узлов между этим узлом и ancestor, включительно. Каждый вызов метода nextElement() имеет сложность O(1).
Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.
- Параметры:
-
ancestor- узел, с которого начать перечисление - Возвращает:
- перечисление для следования по пути от предка этого узла к этому узлу
- Исключения:
-
IllegalArgumentException- еслиancestorне является предком этого узла - См. также:
-
isNodeAncestor(javax.swing.tree.TreeNode),isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
isNodeChild
public boolean isNodeChild(TreeNode aNode)
Возвращает true, если aNode является потомком этого узла. Если aNode равно null, этот метод возвращает false.
- Параметры:
-
aNode- узел, для определения является ли он потомком - Возвращает:
- true, если
aNodeявляется потомком этого узла; false, еслиaNodeравно null
getFirstChild
public TreeNode getFirstChild()
Возвращает первого потомка этого узла. Если у этого узла нет потомков, выбрасывает исключение NoSuchElementException.
- Возвращает:
- первого потомка этого узла
- Исключения:
-
NoSuchElementException- если у этого узла нет потомков
getLastChild
public TreeNode getLastChild()
Возвращает последнего потомка этого узла. Если у этого узла нет потомков, выбрасывает исключение NoSuchElementException.
- Возвращает:
- последнего потомка этого узла
- Исключения:
-
NoSuchElementException- если у этого узла нет потомков
getChildAfter
public TreeNode getChildAfter(TreeNode aChild)
Возвращает потомка в массиве потомков этого узла, который непосредственно следует за aChild, который должен быть потомком этого узла. Если aChild является последним потомком, возвращает null. Этот метод выполняет линейный поиск потомков этого узла для aChild и имеет сложность O(n), где n — количество потомков; для обхода всего массива потомков используйте перечисление вместо этого.
- Параметры:
-
aChild- узел-потомок, для которого нужно найти следующий узел - Возвращает:
- потомка этого узла, который непосредственно следует за
aChild - Исключения:
-
IllegalArgumentException- еслиaChildравен null или не является потомком этого узла - См. также:
children
getChildBefore
public TreeNode getChildBefore(TreeNode aChild)
Возвращает потомка в массиве потомков этого узла, который непосредственно предшествует aChild, который должен быть потомком этого узла. Если aChild является первым потомком, возвращает null. Этот метод выполняет линейный поиск потомков этого узла для aChild и имеет сложность O(n), где n — количество потомков.
- Параметры:
-
aChild- узел-потомок, для которого нужно найти предыдущий узел - Возвращает:
- потомка этого узла, который непосредственно предшествует
aChild - Исключения:
-
IllegalArgumentException- еслиaChildравен null или не является потомком этого узла
isNodeSibling
public boolean isNodeSibling(TreeNode anotherNode)
Возвращает true, если anotherNode является братом этого узла (имеет того же родителя). Узел является своим собственным братом. Если anotherNode равен null, возвращает false.
- Параметры:
-
anotherNode- узел для проверки как брата этого узла - Возвращает:
- true, если
anotherNodeявляется братом этого узла
getSiblingCount
public int getSiblingCount()
Возвращает количество братьев этого узла. Узел является своим собственным братом (если у него нет родителя или нет братьев, этот метод возвращает 1).
- Возвращает:
- количество братьев этого узла
getNextSibling
public DefaultMutableTreeNode getNextSibling()
Возвращает следующего брата этого узла в массиве потомков родителя. Возвращает null, если у этого узла нет родителя или он является последним потомком родителя. Этот метод выполняет линейный поиск, сложность которого O(n), где n — количество потомков; для обхода всего массива используйте перечисление потомков родителя вместо этого.
- Возвращает:
- брата этого узла, который непосредственно следует за этим узлом
- См. также:
children
getPreviousSibling
public DefaultMutableTreeNode getPreviousSibling()
Возвращает предыдущего соседнего узла этого узла в массиве дочерних элементов родителя. Возвращает null, если у этого узла нет родителя или он является первым дочерним элементом родителя. Этот метод выполняет линейный поиск со сложностью O(n), где n — количество дочерних элементов.
- Возвращает:
- соседний узел этого узла, который непосредственно предшествует этому узлу
isLeaf
public boolean isLeaf()
Возвращает true, если у этого узла нет дочерних элементов. Чтобы отличить узлы без дочерних элементов от узлов, которые не могут иметь дочерние элементы (например, чтобы отличить файлы от пустых каталогов), используйте этот метод в сочетании с getAllowsChildren
- Определено в:
-
isLeafв интерфейсеTreeNode - Возвращает:
- true, если у этого узла нет дочерних элементов
- См. также:
getAllowsChildren()
getFirstLeaf
public DefaultMutableTreeNode getFirstLeaf()
Находит и возвращает первый лист, являющийся потомком этого узла — либо этот узел, либо первый лист первого дочернего элемента. Возвращает этот узел, если он является листом.
- Возвращает:
- первый лист в поддереве, укорененном в этом узле
- См. также:
-
isLeaf(),isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
getLastLeaf
public DefaultMutableTreeNode getLastLeaf()
Находит и возвращает последний лист, являющийся потомком этого узла — либо этот узел, либо последний лист последнего дочернего элемента. Возвращает этот узел, если он является листом.
- Возвращает:
- последний лист в поддереве, укорененном в этом узле
- См. также:
-
isLeaf(),isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
getNextLeaf
public DefaultMutableTreeNode getNextLeaf()
Возвращает лист после этого узла или null, если этот узел является последним листом в дереве.
В этой реализации интерфейса MutableNode, эта операция очень неэффективна. Для определения следующего узла этот метод сначала выполняет линейный поиск в списке дочерних элементов родителя, чтобы найти текущий узел.
Такая реализация делает операцию подходящей для коротких проходов от известной позиции. Но для обхода всех листьев в дереве следует использовать depthFirstEnumeration, чтобы перечислить узлы в дереве, и использовать isLeaf для каждого узла, чтобы определить, являются ли они листьями.
- Возвращает:
- возвращает следующий лист после этого узла
- См. также:
-
depthFirstEnumeration(),isLeaf()
getPreviousLeaf
public DefaultMutableTreeNode getPreviousLeaf()
Возвращает лист перед этим узлом или null, если этот узел является первым листом в дереве.
В этой реализации интерфейса MutableNode, эта операция очень неэффективна. Для определения предыдущего узла этот метод сначала выполняет линейный поиск в списке дочерних элементов родителя, чтобы найти текущий узел.
Такая реализация делает операцию подходящей для коротких проходов от известной позиции. Но для обхода всех листьев в дереве следует использовать depthFirstEnumeration, чтобы перечислить узлы в дереве, и использовать isLeaf для каждого узла, чтобы определить, являются ли они листьями.
- Возвращает:
- возвращает лист перед этим узлом
- См. также:
-
depthFirstEnumeration(),isLeaf()
getLeafCount
public int getLeafCount()
Возвращает общее количество листьев, являющихся потомками этого узла. Если этот узел является листом, возвращает 1. Этот метод имеет сложность O(n), где n — количество потомков этого узла.
- Возвращает:
- количество листьев под этим узлом
- См. также:
isNodeAncestor(javax.swing.tree.TreeNode)
toString
public String toString()
Возвращает результат отправки toString() в объект пользователя этого узла или пустую строку, если у узла нет объекта пользователя.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление объекта.
- См. также:
getUserObject()
clone
public Object clone()
Переопределено, чтобы сделать clone общедоступным. Возвращает неглубокую копию этого узла; новый узел не имеет родителя или дочерних элементов и ссылается на тот же объект пользователя, если таковой имеется.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/tree/DefaultMutableTreeNode.html