Класс DefaultMutableTreeNode
- java.lang.Object
-
- javax.swing.tree.DefaultMutableTreeNode
- Все реализованные интерфейсы:
- Serializable, Cloneable, MutableTreeNode, TreeNode
- Прямые известные подклассы:
- JTree.DynamicUtilTreeNode
public class DefaultMutableTreeNode extends Object implements Cloneable, MutableTreeNode, Serializable
Узел DefaultMutableTreeNode является универсальным узлом в структуре данных дерева. Примеры использования узлов дерева 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 |
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 |
breadthFirstEnumeration() Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обхода по ширине. |
Enumeration |
children() Создаёт и возвращает перечисление дочерних узлов этого узла в прямом порядке. |
Object |
clone() Переопределено для того, чтобы сделать clone общедоступным. |
Enumeration |
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 |
pathFromAncestorEnumeration(TreeNode ancestor) Создаёт и возвращает перечисление, которое следует по пути от |
Enumeration |
postorderEnumeration() Создаёт и возвращает перечисление, которое обходит поддерево, укоренённое в этом узле, в порядке обратного обхода. |
Enumeration |
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 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- еслиnewChildnull или является предком этого узла -
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 - Возвращает:
- родительский узел этого узла, или null, если у этого узла нет родителя
getChildAt
public TreeNode getChildAt(int index)
Возвращает дочерний элемент по указанному индексу в массиве дочерних элементов этого узла.
- Задано в:
-
getChildAtв интерфейсеTreeNode - Параметры:
-
index- индекс в массиве дочерних элементов этого узла - Возвращает:
- узел в массиве дочерних элементов этого узла по указанному индексу
- Исключения:
-
ArrayIndexOutOfBoundsException- еслиindexвне диапазона
getChildCount
public int getChildCount()
Возвращает количество дочерних элементов этого узла.
- Задано в:
-
getChildCountв интерфейсеTreeNode - Возвращает:
- целое число, представляющее количество дочерних элементов этого узла
getIndex
public int getIndex(TreeNode aChild)
Возвращает индекс указанного дочернего элемента в массиве дочерних элементов этого узла. Если указанный узел не является дочерним элементом этого узла, возвращает -1. Этот метод выполняет линейный поиск и имеет сложность O(n), где n — количество дочерних элементов.
- Задано в:
-
getIndexв интерфейсеTreeNode - Параметры:
-
aChild- TreeNode для поиска среди дочерних элементов этого узла - Возвращает:
- целое число, представляющее индекс узла в массиве дочерних элементов этого узла, или
-1если указанный узел не является дочерним элементом этого узла - Исключения:
-
IllegalArgumentException- еслиaChildnull
children
public Enumeration children()
Создаёт и возвращает перечисление дочерних элементов этого узла в порядке прямой обходки. Изменение массива дочерних элементов этого узла делает недействительными все перечисления дочерних элементов, созданные до изменения.
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- еслиaChildnull или не является дочерним элементом этого узла
removeAllChildren
public void removeAllChildren()
Удаляет всех дочерних элементов этого узла, устанавливая их родителей в null. Если у этого узла нет дочерних элементов, этот метод ничего не делает.
add
public void add(MutableTreeNode newChild)
Удаляет newChild из его родителя и делает его дочерним элементом этого узла, добавив его в конец массива дочерних элементов этого узла.
- Параметры:
-
newChild- узел для добавления в качестве дочернего элемента этого узла - Исключения:
-
IllegalArgumentException- еслиnewChildnull -
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.
- Возвращает:
- 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.
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 preorderEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево с корнем в этом узле в порядке обхода по прямым потомкам. Первый узел, возвращаемый методом перечисления nextElement(), — это этот узел.
Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до внесения изменений.
- Возвращает:
- перечисление для обхода дерева в порядке обхода по прямым потомкам
- См. также:
postorderEnumeration()
postorderEnumeration
public Enumeration postorderEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево с корнем в этом узле в порядке обратного обхода по прямым потомкам. Первый узел, возвращаемый методом перечисления nextElement(), — это самый левый лист. Это то же самое, что обход в глубину.
Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до внесения изменений.
- Возвращает:
- перечисление для обхода дерева в порядке обратного обхода по прямым потомкам
- См. также:
-
depthFirstEnumeration(),preorderEnumeration()
breadthFirstEnumeration
public Enumeration breadthFirstEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево с корнем в этом узле в порядке обхода по ширине. Первый узел, возвращаемый методом перечисления nextElement(), — это этот узел.
Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до внесения изменений.
- Возвращает:
- перечисление для обхода дерева в порядке обхода по ширине
- См. также:
depthFirstEnumeration()
depthFirstEnumeration
public Enumeration depthFirstEnumeration()
Создаёт и возвращает перечисление, которое обходит поддерево с корнем в этом узле в порядке обхода в глубину. Первый узел, возвращаемый методом перечисления nextElement(), — это самый левый лист. Это то же самое, что обратный обход по прямым потомкам.
Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до внесения изменений.
- Возвращает:
- перечисление для обхода дерева в порядке обхода в глубину
- См. также:
-
breadthFirstEnumeration(),postorderEnumeration()
pathFromAncestorEnumeration
public Enumeration pathFromAncestorEnumeration(TreeNode ancestor)
Создаёт и возвращает перечисление, которое следует по пути от ancestor до этого узла. Метод перечисления nextElement() сначала возвращает ancestor, затем дочерний узел ancestor, являющийся предком этого узла, и так далее, и, наконец, возвращает этот узел. Создание перечисления — O(m), где m — количество узлов между этим узлом и ancestor, включительно. Каждый вызов метода nextElement() — O(1).
Изменение дерева путём вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до внесения изменений.
- Возвращает:
- перечисление для следования по пути от предка этого узла до него
- Исключения:
-
IllegalArgumentException- еслиancestorне является предком этого узла - См. также:
-
isNodeAncestor(javax.swing.tree.TreeNode),isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
isNodeChild
public boolean isNodeChild(TreeNode aNode)
Возвращает true, если aNode является дочерним узлом этого узла. Если aNode равно null, этот метод возвращает false.
- Возвращает:
- 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 — количество дочерних узлов; для обхода всего массива дочерних узлов используйте перечисление.
- Возвращает:
- дочерний узел этого узла, который следует сразу после %%%CODE_BLOCK_323%%
- Исключения:
-
IllegalArgumentException- еслиaChildравен null или не является дочерним узлом этого узла - См. также:
children
getChildBefore
public TreeNode getChildBefore(TreeNode aChild)
Возвращает дочерний узел в массиве дочерних узлов этого узла, который непосредственно предшествует aChild, который должен быть дочерним узлом этого узла. Если aChild — первый дочерний узел, возвращает null. Этот метод выполняет линейный поиск дочерних узлов этого узла для aChild и имеет сложность O(n), где n — количество дочерних узлов.
- Возвращает:
- дочерний узел этого узла, который непосредственно предшествует
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.