Класс 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.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected boolean |
allowsChildren |
true, если узел может иметь потомков |
protected Vector |
children |
массив потомков; может быть null, если у узла нет потомков |
static final Enumeration |
EMPTY_ENUMERATION |
Перечисление, которое всегда пусто. |
protected MutableTreeNode |
parent |
родитель этого узла или null, если у узла нет родителя |
protected Object |
userObject |
необязательный пользовательский объект |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DefaultMutableTreeNode() |
Создает узел дерева без родителя и потомков, но допускающий наличие потомков. |
DefaultMutableTreeNode |
Создает узел дерева без родителя и потомков, допускающий наличие потомков, и инициализирует его указанным пользовательским объектом. |
DefaultMutableTreeNode |
Создает узел дерева без родителя и потомков, инициализирует его указанным пользовательским объектом и разрешает наличие потомков только в том случае, если это указано. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
add |
Удаляет newChild из его родителя и добавляет его в конец массива потомков этого узла, делая его потомком данного узла. |
Enumeration |
breadthFirstEnumeration() |
Создает и возвращает перечисление для обхода поддерева с корнем в этом узле в ширину. |
Enumeration |
children() |
Создает и возвращает перечисление потомков этого узла в прямом порядке. |
Object |
clone() |
Переопределен, чтобы сделать метод clone общедоступным. |
Enumeration |
depthFirstEnumeration() |
Создает и возвращает перечисление для обхода поддерева с корнем в этом узле в глубину. |
boolean |
getAllowsChildren() |
Возвращает true, если этому узлу разрешено иметь потомков. |
TreeNode |
getChildAfter |
Возвращает потомка из массива потомков этого узла, непосредственно следующего за aChild, который должен быть потомком этого узла. |
TreeNode |
getChildAt |
Возвращает потомка с указанным индексом в массиве потомков этого узла. |
TreeNode |
getChildBefore |
Возвращает потомка из массива потомков этого узла, непосредственно предшествующего aChild, который должен быть потомком этого узла. |
int |
getChildCount() |
Возвращает количество потомков этого узла. |
int |
getDepth() |
Возвращает глубину дерева с корнем в этом узле — наибольшее расстояние от этого узла до листа. |
TreeNode |
getFirstChild() |
Возвращает первого потомка этого узла. |
DefaultMutableTreeNode |
getFirstLeaf() |
Находит и возвращает первый лист, являющийся потомком этого узла: либо сам этот узел, либо первый лист первого потомка этого узла. |
int |
getIndex |
Возвращает индекс указанного потомка в массиве потомков этого узла. |
TreeNode |
getLastChild() |
Возвращает последнего потомка этого узла. |
DefaultMutableTreeNode |
getLastLeaf() |
Находит и возвращает последний лист, являющийся потомком этого узла: либо сам этот узел, либо последний лист последнего потомка этого узла. |
int |
getLeafCount() |
Возвращает общее количество листьев, являющихся потомками этого узла. |
int |
getLevel() |
Возвращает количество уровней над этим узлом — расстояние от корня до этого узла. |
DefaultMutableTreeNode |
getNextLeaf() |
Возвращает лист, следующий за этим узлом, или null, если этот узел является последним листом дерева. |
DefaultMutableTreeNode |
getNextNode() |
Возвращает узел, следующий за этим узлом при прямом обходе дерева этого узла. |
DefaultMutableTreeNode |
getNextSibling() |
Возвращает следующего соседа этого узла в массиве потомков родителя. |
TreeNode |
getParent() |
Возвращает родителя этого узла или null, если у этого узла нет родителя. |
TreeNode[] |
getPath() |
Возвращает путь от корня к этому узлу. |
protected TreeNode[] |
getPathToRoot |
Создает массив родителей узла вплоть до корневого узла включительно; исходный узел является последним элементом возвращаемого массива. |
DefaultMutableTreeNode |
getPreviousLeaf() |
Возвращает лист, предшествующий этому узлу, или null, если этот узел является первым листом дерева. |
DefaultMutableTreeNode |
getPreviousNode() |
Возвращает узел, предшествующий этому узлу при прямом обходе дерева этого узла. |
DefaultMutableTreeNode |
getPreviousSibling() |
Возвращает предыдущего соседа этого узла в массиве потомков родителя. |
TreeNode |
getRoot() |
Возвращает корень дерева, содержащего этот узел. |
TreeNode |
getSharedAncestor |
Возвращает ближайшего общего предка этого узла и aNode. |
int |
getSiblingCount() |
Возвращает количество соседей этого узла. |
Object |
getUserObject() |
Возвращает пользовательский объект этого узла. |
Object[] |
getUserObjectPath() |
Возвращает путь пользовательских объектов от корня к этому узлу. |
void |
insert |
Удаляет newChild из его текущего родителя (если он есть), задает родителем потомка этот узел, а затем добавляет потомка в массив потомков этого узла по индексу childIndex. |
boolean |
isLeaf() |
Возвращает true, если у этого узла нет потомков. |
boolean |
isNodeAncestor |
Возвращает true, если anotherNode является предком этого узла: если это сам этот узел, его родитель или предок его родителя. |
boolean |
isNodeChild |
Возвращает true, если aNode является потомком этого узла. |
boolean |
isNodeDescendant |
Возвращает true, если anotherNode является потомком этого узла: если это сам этот узел, один из его потомков или потомок одного из его потомков. |
boolean |
isNodeRelated |
Возвращает true тогда и только тогда, когда aNode находится в том же дереве, что и этот узел. |
boolean |
isNodeSibling |
Возвращает true, если anotherNode является соседом этого узла (имеет того же родителя). |
boolean |
isRoot() |
Возвращает true, если этот узел является корнем дерева. |
Enumeration |
pathFromAncestorEnumeration |
Создает и возвращает перечисление, проходящее по пути от ancestor к этому узлу. |
Enumeration |
postorderEnumeration() |
Создает и возвращает перечисление для обхода поддерева с корнем в этом узле в обратном порядке. |
Enumeration |
preorderEnumeration() |
Создает и возвращает перечисление для обхода поддерева с корнем в этом узле в прямом порядке. |
void |
remove |
Удаляет потомка с указанным индексом из списка потомков этого узла и устанавливает для его родителя значение null. |
void |
remove |
Удаляет aChild из массива потомков этого узла, устанавливая для него значение null в качестве родителя. |
void |
removeAllChildren() |
Удаляет всех потомков этого узла, устанавливая для их родителей значение null. |
void |
removeFromParent() |
Удаляет поддерево с корнем в этом узле из дерева, устанавливая для этого узла значение null в качестве родителя. |
void |
setAllowsChildren |
Определяет, разрешено ли этому узлу иметь потомков. |
void |
setParent |
Устанавливает для этого узла родителя newParent, но не изменяет массив потомков родителя. |
void |
setUserObject |
Устанавливает для этого узла пользовательский объект userObject. |
String |
toString() |
Возвращает результат вызова toString() для пользовательского объекта этого узла или пустую строку, если у узла нет пользовательского объекта. |
Подробное описание полей
EMPTY_ENUMERATION
public static final Enumeration<TreeNode> EMPTY_ENUMERATION
parent
protected MutableTreeNode parent
children
protected Vector<TreeNode> children
userObject
protected transient Object userObject
allowsChildren
protected boolean allowsChildren
Подробное описание конструкторов
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— если этот узел не допускает наличия дочерних узлов - См. также:
remove
public void remove(int childIndex)
MutableTreeNode.- Переопределяет:
-
removeв интерфейсеMutableTreeNode - Параметры:
-
childIndex— индекс удаляемого дочернего узла в массиве дочерних узлов этого узла - Вызывает исключение:
-
ArrayIndexOutOfBoundsException— еслиchildIndexвыходит за допустимые границы
setParent
public void setParent(MutableTreeNode newParent)
newParent, но не изменяет массив дочерних узлов родителя. Этот метод вызывается из insert() и remove() для переназначения родителя дочернего узла; его не следует вызывать из других мест.- Переопределяет:
-
setParentв интерфейсеMutableTreeNode - Параметры:
-
newParent— новый родительский узел этого узла
getParent
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()
setAllowsChildren
public void setAllowsChildren(boolean allows)
allows имеет значение false, все дочерние узлы этого узла удаляются. Примечание. По умолчанию узлу разрешено иметь дочерние узлы.
- Параметры:
-
allows— true, если этому узлу разрешено иметь дочерние узлы
getAllowsChildren
public boolean getAllowsChildren()
- Переопределяет:
-
getAllowsChildrenв интерфейсеTreeNode - Возвращает:
- true, если этому узлу разрешено иметь дочерние узлы; в противном случае false
setUserObject
public void setUserObject(Object userObject)
userObject.- Переопределяет:
-
setUserObjectв интерфейсеMutableTreeNode - Параметры:
-
userObject— объект, составляющий заданные пользователем данные этого узла - См. также:
getUserObject
public Object getUserObject()
- Возвращает:
- объект, сохраненный пользователем в этом узле
- См. также:
removeFromParent
public void removeFromParent()
- Переопределяет:
-
removeFromParentв интерфейсеMutableTreeNode
remove
public void remove(MutableTreeNode aChild)
aChild из массива дочерних узлов этого узла, задавая для него родителя null.- Переопределяет:
-
removeв интерфейсеMutableTreeNode - Параметры:
-
aChild— дочерний узел этого узла, который нужно удалить - Вызывает исключение:
-
IllegalArgumentException— еслиaChildравен null или не является дочерним для этого узла
removeAllChildren
public void removeAllChildren()
add
public void add(MutableTreeNode newChild)
newChild из его родителя и делает его дочерним узлом этого узла, добавляя его в конец массива дочерних узлов этого узла.- Параметры:
-
newChild— узел, который нужно добавить как дочерний узел этого узла - Вызывает исключение:
-
IllegalArgumentException— еслиnewChildравен null -
IllegalStateException— если этот узел не допускает наличия дочерних узлов - См. также:
isNodeAncestor
public boolean isNodeAncestor(TreeNode anotherNode)
anotherNode является предком этого узла: то есть совпадает с этим узлом, является его родителем или предком его родителя. (Обратите внимание, что узел считается предком самого себя.) Если anotherNode равен null, метод возвращает false. В худшем случае сложность этой операции составляет O(h), где h — расстояние от корня до этого узла.- Параметры:
-
anotherNode— узел, который нужно проверить на то, является ли он предком этого узла - Возвращает:
- true, если этот узел является потомком
anotherNode - См. также:
isNodeDescendant
public boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
anotherNode является потомком этого узла: то есть совпадает с этим узлом, является одним из его дочерних узлов или потомком одного из дочерних узлов этого узла. Обратите внимание, что узел считается потомком самого себя. Если anotherNode равен null, возвращает false. В худшем случае сложность этой операции составляет O(h), где h — расстояние от корня до anotherNode.- Параметры:
-
anotherNode— узел, который нужно проверить на то, является ли он потомком этого узла - Возвращает:
- true, если этот узел является предком
anotherNode - См. также:
isNodeRelated
public boolean isNodeRelated(DefaultMutableTreeNode aNode)
aNode находится в том же дереве, что и этот узел. Возвращает false, если aNode равен null.- Параметры:
-
aNode— узел, с которым нужно найти общего предка - Возвращает:
- true, если
aNodeнаходится в том же дереве, что и этот узел; false, еслиaNodeравен null - См. также:
getDepth
public int getDepth()
getLevel(), поскольку фактически требует обхода всего дерева с корнем в этом узле.- Возвращает:
- глубина дерева, корнем которого является этот узел
- См. также:
getLevel
public int getLevel()
- Возвращает:
- количество уровней над этим узлом
- См. также:
getPath
public TreeNode[] getPath()
- Возвращает:
- массив объектов TreeNode, задающий путь, в котором первый элемент — корень, а последний — этот узел.
getPathToRoot
protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
- Параметры:
-
aNode— узел TreeNode, для которого нужно получить путь -
depth— значение int, задающее количество шагов, уже сделанных в направлении корня (при рекурсивных вызовах); используется для определения размера возвращаемого массива - Возвращает:
- массив узлов TreeNode, задающий путь от корня до указанного узла
getUserObjectPath
public Object[] getUserObjectPath()
- Возвращает:
- путь из пользовательских объектов от корня к этому узлу
getRoot
public TreeNode getRoot()
- Возвращает:
- корень дерева, содержащего этот узел
- См. также:
isRoot
public boolean isRoot()
- Возвращает:
- true, если этот узел является корнем своего дерева
getNextNode
public DefaultMutableTreeNode getNextNode()
- Возвращает:
- узел, следующий за этим узлом при прямом обходе, или null, если этот узел последний
- См. также:
getPreviousNode
public DefaultMutableTreeNode getPreviousNode()
null, если этот узел является первым узлом обхода — корнем дерева. Это неэффективный способ обхода всего дерева; вместо него используйте перечисление.- Возвращает:
- узел, предшествующий этому узлу при прямом обходе, или null, если этот узел первый
- См. также:
preorderEnumeration
public Enumeration<TreeNode> preorderEnumeration()
nextElement() перечисления, — это этот узел.Изменение дерева путем вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.
- Возвращает:
- перечисление для прямого обхода дерева
- См. также:
postorderEnumeration
public Enumeration<TreeNode> postorderEnumeration()
nextElement() перечисления, — самый левый листовой узел. Это то же самое, что обход в глубину.Изменение дерева путем вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.
- Возвращает:
- перечисление для обратного обхода дерева
- См. также:
breadthFirstEnumeration
public Enumeration<TreeNode> breadthFirstEnumeration()
nextElement() перечисления, — это этот узел.Изменение дерева путем вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.
- Возвращает:
- перечисление для обхода дерева в ширину
- См. также:
depthFirstEnumeration
public Enumeration<TreeNode> depthFirstEnumeration()
nextElement() перечисления, — самый левый листовой узел. Это то же самое, что обратный обход.Изменение дерева путем вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.
- Возвращает:
- перечисление для обхода дерева в глубину
- См. также:
pathFromAncestorEnumeration
public Enumeration<TreeNode> pathFromAncestorEnumeration(TreeNode ancestor)
ancestor до этого узла. Метод nextElement() перечисления сначала возвращает ancestor, затем дочерний узел ancestor, являющийся предком этого узла, и так далее, а в конце возвращает этот узел. Создание перечисления имеет сложность O(m), где m — количество узлов между этим узлом и ancestor включительно. Каждый вызов nextElement() имеет сложность O(1).Изменение дерева путем вставки, удаления или перемещения узла делает недействительными все перечисления, созданные до изменения.
- Параметры:
-
ancestor— узел, с которого нужно начать перечисление - Возвращает:
- перечисление для прохождения по пути от предка этого узла до самого узла
- Вызывает исключение:
-
IllegalArgumentException— еслиancestorне является предком этого узла - См. также:
isNodeChild
public boolean isNodeChild(TreeNode aNode)
aNode является дочерним узлом этого узла. Если aNode равен null, метод возвращает false.- Параметры:
-
aNode— узел, для которого нужно определить, является ли он дочерним - Возвращает:
- true, если
aNodeявляется дочерним узлом этого узла; false, еслиaNodeравен null
getFirstChild
public TreeNode getFirstChild()
- Возвращает:
- первый дочерний узел этого узла
- Вызывает исключение:
-
NoSuchElementException— если у этого узла нет дочерних узлов
getLastChild
public TreeNode getLastChild()
- Возвращает:
- последний дочерний узел этого узла
- Вызывает исключение:
-
NoSuchElementException— если у этого узла нет дочерних узлов
getChildAfter
public TreeNode getChildAfter(TreeNode aChild)
aChild, который должен быть дочерним узлом этого узла. Если aChild является последним дочерним узлом, возвращает null. Этот метод выполняет линейный поиск aChild среди дочерних узлов этого узла и имеет сложность O(n), где n — количество дочерних узлов; для обхода всего массива дочерних узлов используйте перечисление.- Параметры:
-
aChild— дочерний узел, после которого нужно найти следующий дочерний узел - Возвращает:
- дочерний узел этого узла, непосредственно следующий за
aChild - Вызывает исключение:
-
IllegalArgumentException— еслиaChildравен null или не является дочерним узлом этого узла - См. также:
getChildBefore
public TreeNode getChildBefore(TreeNode aChild)
aChild, который должен быть дочерним узлом этого узла. Если aChild является первым дочерним узлом, возвращает null. Этот метод выполняет линейный поиск aChild среди дочерних узлов этого узла и имеет сложность O(n), где n — количество дочерних узлов.- Параметры:
-
aChild— дочерний узел, перед которым нужно найти предыдущий дочерний узел - Возвращает:
- дочерний узел этого узла, непосредственно предшествующий
aChild - Вызывает исключение:
-
IllegalArgumentException— еслиaChildравен null или не является дочерним узлом этого узла
isNodeSibling
public boolean isNodeSibling(TreeNode anotherNode)
anotherNode является соседним узлом этого узла (имеет того же родителя). Узел является соседом самого себя. Если anotherNode равен null, возвращает false.- Параметры:
-
anotherNode— узел, который нужно проверить на то, является ли он соседом этого узла - Возвращает:
- true, если
anotherNodeявляется соседом этого узла
getSiblingCount
public int getSiblingCount()
1).- Возвращает:
- количество соседних узлов этого узла
getNextSibling
public DefaultMutableTreeNode getNextSibling()
- Возвращает:
- соседний узел, непосредственно следующий за этим узлом
- См. также:
getPreviousSibling
public DefaultMutableTreeNode getPreviousSibling()
- Возвращает:
- соседний узел, непосредственно предшествующий этому узлу
isLeaf
public boolean isLeaf()
getAllowsChildren
getFirstLeaf
public DefaultMutableTreeNode getFirstLeaf()
- Возвращает:
- первый листовой узел в поддереве с корнем в этом узле
- См. также:
getLastLeaf
public DefaultMutableTreeNode getLastLeaf()
- Возвращает:
- последний листовой узел в поддереве с корнем в этом узле
- См. также:
getNextLeaf
public DefaultMutableTreeNode getNextLeaf()
В данной реализации интерфейса MutableNode эта операция очень неэффективна. Чтобы определить следующий узел, этот метод сначала выполняет линейный поиск в списке дочерних узлов родителя, чтобы найти текущий узел.
Такая реализация подходит для короткого обхода, начинающегося с известной позиции. Однако для обхода всех листовых узлов дерева следует использовать depthFirstEnumeration для перечисления узлов дерева и применять isLeaf к каждому узлу, чтобы определить, какие из них являются листовыми.
- Возвращает:
- следующий листовой узел после этого узла
- См. также:
getPreviousLeaf
public DefaultMutableTreeNode getPreviousLeaf()
В данной реализации интерфейса MutableNode эта операция очень неэффективна. Чтобы определить предыдущий узел, этот метод сначала выполняет линейный поиск в списке дочерних узлов родителя, чтобы найти текущий узел.
Такая реализация подходит для короткого обхода, начинающегося с известной позиции. Однако для обхода всех листовых узлов дерева следует использовать depthFirstEnumeration для перечисления узлов дерева и применять isLeaf к каждому узлу, чтобы определить, какие из них являются листовыми.
- Возвращает:
- листовой узел, предшествующий этому узлу
- См. также:
getLeafCount
public int getLeafCount()
1. Сложность этого метода — O(n), где n — количество потомков этого узла.- Возвращает:
- количество листовых узлов под этим узлом
- См. также:
toString
clone
public Object clone()
© 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