Spec-Zone .ru
спецификации, руководства, описания, API
|
public class DefaultMutableTreeNode extends Object implements Cloneable, MutableTreeNode, Serializable
DefaultMutableTreeNode
узел общего назначения в древовидной структуре данных. Для примеров использования значения по умолчанию изменчивые древовидные узлы см. У древовидного узла могут быть самое большее один родитель и 0 или больше дочерних элементов. DefaultMutableTreeNode
обеспечивает операции для исследования и изменения родителя узла и дочерних элементов и также операций для того, чтобы исследовать дерево, из которого узел является частью. Дерево узла является набором всех узлов, которые могут быть достигнуты, запускаясь в узле и после всех возможных ссылок к родителям и дочерним элементам. Узел без родителя является корнем своего дерева; узел без дочерних элементов является листом. Дерево может состоять из многих поддеревьев, каждый узел, действующий как корень для его собственного поддерева.
Этот class обеспечивает перечисления для того, чтобы они эффективно пересекли дерево или поддерево в различных заказах или для следующего путь между двумя узлами. A DefaultMutableTreeNode
май также содержит ссылку на пользовательский объект, использование которого оставляют пользователю. Выяснение a DefaultMutableTreeNode
для его строкового представления с toString()
возвращает строковое представление ее пользовательского объекта.
Это не ориентированный на многопотоковое исполнение class.If, Вы намереваетесь использовать DefaultMutableTreeNode (или дерево TreeNodes) больше чем в одном потоке, Вы должны сделать свою собственную синхронизацию. Хорошее соглашение принять синхронизируется на корневом узле дерева.
В то время как DefaultMutableTreeNode реализует интерфейс MutableTreeNode и позволит Вам добавлять в любой реализации MutableTreeNode не, все методы в DefaultMutableTreeNode будут применимы ко всем реализациям MutableTreeNodes. Особенно с некоторыми из перечислений, которые обеспечиваются, используя некоторые из этих методов, предполагает, что DefaultMutableTreeNode содержит только экземпляры DefaultMutableNode. Все методы TreeNode/MutableTreeNode будут вести себя как определено независимо от того, какие реализации добавляются.
Предупреждение: Сериализированные объекты этого class не будут совместимыми с будущими выпусками Swing. Текущая поддержка сериализации является подходящей для краткосрочного хранения или RMI между приложениями, выполняющими ту же самую версию Swing. С 1.4, поддержка длительного хранения всего JavaBeansTM была добавлена к java.beans
пакет. Пожалуйста, см. XMLEncoder
.
MutableTreeNode
Модификатор и Тип | Поле и Описание |
---|---|
protected boolean |
allowsChildren
истина, если узел в состоянии иметь дочерние элементы
|
protected Vector |
дочерние элементы
массив дочерних элементов, может быть нуль, если у этого узла нет никаких дочерних элементов
|
static Enumeration<TreeNode> |
EMPTY_ENUMERATION
Перечисление, которое всегда пусто.
|
protected MutableTreeNode |
родитель
родитель этого узла, или нуль, если у этого узла нет никакого родителя
|
protected Object |
userObject
дополнительный пользовательский объект
|
Конструктор и Описание |
---|
DefaultMutableTreeNode()
Создает древовидный узел, у которого нет никакого родителя и никаких дочерних элементов, но который позволяет дочерним элементам.
|
DefaultMutableTreeNode(Object userObject)
Создает древовидный узел без родителя, никаких дочерних элементов, но который позволяет дочерним элементам, и инициализирует его с указанным пользовательским объектом.
|
DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
Создает древовидный узел без родителя, никаких дочерних элементов, инициализированных с указанным пользовательским объектом, и это позволяет дочерним элементам только если указанный.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
add(MutableTreeNode newChild)
Удаляет
newChild от его родителя и делает это дочерним элементом этого узла, добавляя это до конца дочернего массива этого узла. |
Перечисление |
breadthFirstEnumeration()
Создает и возвращает перечисление, которое пересекает поддерево, базированное в этом узле в порядке в ширину.
|
Перечисление |
children()
Создает и возвращает перечисление прямого порядка дочерних элементов этого узла.
|
Объект |
clone()
Переопределенный, чтобы обнародовать клона.
|
Перечисление |
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()
Возвращает лист после этого узла или нуля, если этот узел является последним листом в дереве.
|
DefaultMutableTreeNode |
getNextNode()
Возвращает узел, который следует за этим узлом в обходе перед порядком дерева этого узла.
|
DefaultMutableTreeNode |
getNextSibling()
Возвращает следующий одноуровневый элемент этого узла в дочернем массиве родителя.
|
TreeNode |
getParent()
Возвраты родитель этого узла или нуль, если у этого узла нет никакого родителя.
|
TreeNode[] |
getPath()
Возвращает путь из корня, чтобы добраться до этого узла.
|
protected TreeNode[] |
getPathToRoot(TreeNode aNode, int depth)
Создает родителей узла до и включая корневой узел, где исходный узел является последним элементом в возвращенном массиве.
|
DefaultMutableTreeNode |
getPreviousLeaf()
Возвращает лист перед этим узлом или нулем, если этот узел является первым листом в дереве.
|
DefaultMutableTreeNode |
getPreviousNode()
Возвращает узел, который предшествует этому узлу в обходе перед порядком дерева этого узла.
|
DefaultMutableTreeNode |
getPreviousSibling()
Возвращает предыдущий одноуровневый элемент этого узла в дочернем массиве родителя.
|
TreeNode |
getRoot()
Возвращает корень дерева, которое содержит этот узел.
|
TreeNode |
getSharedAncestor(DefaultMutableTreeNode aNode)
Возвращает самого близкого общего предка этому узлу и
aNode . |
int |
getSiblingCount()
Возвращает число одноуровневых элементов этого узла.
|
Объект |
getUserObject()
Возвраты пользовательский объект этого узла.
|
Объект[] |
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, если этот узел является корнем дерева.
|
Перечисление |
pathFromAncestorEnumeration(TreeNode ancestor)
Создает и возвращает перечисление, которое следует за путем от
ancestor к этому узлу. |
Перечисление |
postorderEnumeration()
Создает и возвращает перечисление, которое пересекает поддерево, базированное в этом узле в постпорядке.
|
Перечисление |
preorderEnumeration()
Создает и возвращает перечисление, которое пересекает поддерево, базированное в этом узле в предварительном порядке.
|
void |
remove(int childIndex)
Удаляет дочерний элемент в указанном, индексируют от дочерних элементов этого узла, и устанавливает родителя того узла в NULL.
|
void |
remove(MutableTreeNode aChild)
Удаляет
aChild от дочернего массива этого узла, давая это нулевой родитель. |
void |
removeAllChildren()
Удаляет все дочерние элементы этого узла, устанавливая их родителей в NULL.
|
void |
removeFromParent()
Удаляет поддерево, базированное в этом узле от дерева, давая этот узел нулевой родитель.
|
void |
setAllowsChildren(boolean allows)
Определяет, позволяют ли этому узлу иметь дочерние элементы.
|
void |
setParent(MutableTreeNode newParent)
Наборы родитель этого узла к
newParent но не изменяет дочерний массив родителя. |
void |
setUserObject(Object userObject)
Устанавливает пользовательский объект для этого узла к
userObject . |
Строка |
toString()
Возвращает результат отправки
toString() к пользовательскому объекту этого узла, или пустой строке, если у узла нет никакого пользовательского объекта. |
public static final Enumeration<TreeNode> EMPTY_ENUMERATION
protected MutableTreeNode parent
protected Vector children
protected transient Object userObject
protected boolean allowsChildren
public DefaultMutableTreeNode()
public DefaultMutableTreeNode(Object userObject)
userObject
- Объект, обеспеченный пользователем, который составляет данные узлаpublic DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
userObject
- Объект, обеспеченный пользователем, который составляет данные узлаallowsChildren
- если это правда, узлу позволяют иметь дочерние узлы - иначе, это всегда - вершинаpublic void insert(MutableTreeNode newChild, int childIndex)
newChild
от его существующего родителя (если у этого есть родитель), устанавливает родителя дочернего элемента в этот узел, и затем добавляет, что дочерний элемент дочернему массиву этого узла в индексирует childIndex
. newChild
не должен быть нуль и не должен быть предок этого узла.insert
в интерфейсе MutableTreeNode
newChild
- MutableTreeNode, чтобы вставить под этим узломchildIndex
- индексирование в дочернем элементе этого узла выстраивает, где этот узел должен быть вставленArrayIndexOutOfBoundsException
- если childIndex
за пределыIllegalArgumentException
- если newChild
нуль или предок этого узлаIllegalStateException
- если этот узел не позволяет дочерним элементамisNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
public void remove(int childIndex)
MutableTreeNode
.remove
в интерфейсе MutableTreeNode
childIndex
- индексирование в дочернем массиве этого узла дочернего элемента, чтобы удалитьArrayIndexOutOfBoundsException
- если childIndex
за пределыpublic void setParent(MutableTreeNode newParent)
newParent
но не изменяет дочерний массив родителя. От этого метода вызывают insert()
и remove()
чтобы повторно присвоить родителя дочернего элемента, это ниоткуда еще не должно быть передано.setParent
в интерфейсе MutableTreeNode
newParent
- новый родитель этого узлаpublic TreeNode getParent()
public TreeNode getChildAt(int index)
getChildAt
в интерфейсе TreeNode
index
- индексирование в дочерний массив этого узлаArrayIndexOutOfBoundsException
- если index
за пределыpublic int getChildCount()
getChildCount
в интерфейсе TreeNode
public int getIndex(TreeNode aChild)
-1
. Этот метод выполняет линейный поиск и является O (n), где n является числом дочерних элементов.getIndex
в интерфейсе TreeNode
aChild
- TreeNode, чтобы искать среди дочерних элементов этого узла-1
если указанный узел не дочерний элемент этого узлаIllegalArgumentException
- если aChild
нульpublic Enumeration children()
public void setAllowsChildren(boolean allows)
allows
ложь, все дочерние элементы этого узла удаляются. Отметьте: По умолчанию узел позволяет дочерним элементам.
allows
- истина, если этому узлу позволяют иметь дочерние элементыpublic boolean getAllowsChildren()
getAllowsChildren
в интерфейсе TreeNode
public void setUserObject(Object userObject)
userObject
.setUserObject
в интерфейсе MutableTreeNode
userObject
- Объект, который составляет определенные пользователем данные этого узлаgetUserObject()
, toString()
public Object getUserObject()
setUserObject(java.lang.Object)
, toString()
public void removeFromParent()
removeFromParent
в интерфейсе MutableTreeNode
public void remove(MutableTreeNode aChild)
aChild
от дочернего массива этого узла, давая это нулевой родитель.remove
в интерфейсе MutableTreeNode
aChild
- дочерний элемент этого узла, чтобы удалитьIllegalArgumentException
- если aChild
нуль или не дочерний элемент этого узлаpublic void removeAllChildren()
public void add(MutableTreeNode newChild)
newChild
от его родителя и делает это дочерним элементом этого узла, добавляя это до конца дочернего массива этого узла.newChild
- узел, чтобы добавить как дочерний элемент этого узлаIllegalArgumentException
- если newChild
нульIllegalStateException
- если этот узел не позволяет дочерним элементамinsert(javax.swing.tree.MutableTreeNode, int)
public boolean isNodeAncestor(TreeNode anotherNode)
anotherNode
предок этого узла - если это - этот узел, родитель этого узла, или предок родителя этого узла. (Отметьте, что узел считают предком себя.), Если anotherNode
нуль, этот метод возвращает false. Эта работа в худшем случае O (h), где h является расстоянием от корня до этого узла.anotherNode
- узел, чтобы протестировать как предок этого узлаanotherNode
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
, getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)
public boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
anotherNode
потомок этого узла - если это - этот узел, один из дочерних элементов этого узла, или потомок одного из дочерних элементов этого узла. Отметьте, что узел считают потомком себя. Если anotherNode
нуль, возвращает false. Эта работа в худшем случае O (h), где h является расстоянием от корня до anotherNode
.anotherNode
- узел, чтобы протестировать как потомок этого узлаanotherNode
isNodeAncestor(javax.swing.tree.TreeNode)
, getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)
public TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)
aNode
. Нуль возвратов, если никакой такой предок не существует - если этот узел и aNode
находятся в различных деревьях или если aNode
нуль. Узел считают предком себя.aNode
- узел, чтобы найти общего предка сaNode
, или нуль, если ни одинisNodeAncestor(javax.swing.tree.TreeNode)
, isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
public boolean isNodeRelated(DefaultMutableTreeNode aNode)
aNode
находится в том же самом дереве как этот узел. Возвращает false если aNode
нуль.aNode
находится в том же самом дереве как этот узел; ложь, если aNode
нульgetSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)
, getRoot()
public int getDepth()
getLevel()
потому что это должно эффективно пересечь все дерево, базированное в этом узле.getLevel()
public int getLevel()
getDepth()
public TreeNode[] getPath()
protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
aNode
- TreeNode, чтобы получить путь дляdepth
- интервал, дающий число шагов, уже сделанных к корню (на рекурсивных вызовах), используемый, чтобы измерить возвращенный массивpublic Object[] getUserObjectPath()
public TreeNode getRoot()
isNodeAncestor(javax.swing.tree.TreeNode)
public boolean isRoot()
public DefaultMutableTreeNode getNextNode()
preorderEnumeration()
public DefaultMutableTreeNode getPreviousNode()
null
если этот узел является первым узлом обхода - корень дерева. Это - неэффективный способ пересечь все дерево; используйте перечисление, вместо этого.preorderEnumeration()
public Enumeration preorderEnumeration()
nextElement()
метод является этим узлом.Изменение дерева, вставляя, удаляя, или перемещая узел лишает законной силы любые перечисления, создаваемые перед модификацией.
postorderEnumeration()
public Enumeration postorderEnumeration()
nextElement()
метод является крайним левым листом. Это - то же самое как обход в глубину.Изменение дерева, вставляя, удаляя, или перемещая узел лишает законной силы любые перечисления, создаваемые перед модификацией.
depthFirstEnumeration()
, preorderEnumeration()
public Enumeration breadthFirstEnumeration()
nextElement()
метод является этим узлом.Изменение дерева, вставляя, удаляя, или перемещая узел лишает законной силы любые перечисления, создаваемые перед модификацией.
depthFirstEnumeration()
public Enumeration depthFirstEnumeration()
nextElement()
метод является крайним левым листом. Это - то же самое как обход постпорядка.Изменение дерева, вставляя, удаляя, или перемещая узел лишает законной силы любые перечисления, создаваемые перед модификацией.
breadthFirstEnumeration()
, postorderEnumeration()
public Enumeration pathFromAncestorEnumeration(TreeNode ancestor)
ancestor
к этому узлу. Перечисление nextElement()
метод сначала возвращается ancestor
, тогда дочерний элемент ancestor
это - предок этого узла, и так далее, и наконец возвращает этот узел. Создание перечисления является O (m), где м. является числом узлов между этим узлом и ancestor
, включительно. Каждый nextElement()
сообщение является O (1).Изменение дерева, вставляя, удаляя, или перемещая узел лишает законной силы любые перечисления, создаваемые перед модификацией.
IllegalArgumentException
- если ancestor
не предок этого узлаisNodeAncestor(javax.swing.tree.TreeNode)
, isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
public boolean isNodeChild(TreeNode aNode)
aNode
дочерний элемент этого узла. Если aNode
нуль, этот метод возвращает false.aNode
дочерний элемент этого узла; ложь, если aNode
нульpublic TreeNode getFirstChild()
NoSuchElementException
- если у этого узла нет никаких дочерних элементовpublic TreeNode getLastChild()
NoSuchElementException
- если у этого узла нет никаких дочерних элементовpublic TreeNode getChildAfter(TreeNode aChild)
aChild
, который должен быть дочерним элементом этого узла. Если aChild
последний дочерний элемент, нуль возвратов. Этот метод выполняет линейный поиск дочерних элементов этого узла для aChild
и O (n), где n является числом дочерних элементов; чтобы пересечь весь массив дочерних элементов, используйте перечисление вместо этого.aChild
IllegalArgumentException
- если aChild
нуль или не дочерний элемент этого узлаchildren
public TreeNode getChildBefore(TreeNode aChild)
aChild
, который должен быть дочерним элементом этого узла. Если aChild
первый дочерний элемент, нуль возвратов. Этот метод выполняет линейный поиск дочерних элементов этого узла для aChild
и O (n), где n является числом дочерних элементов.aChild
IllegalArgumentException
- если aChild
нуль или не дочерний элемент этого узлаpublic boolean isNodeSibling(TreeNode anotherNode)
anotherNode
одноуровневый элемент (имеет того же самого родителя как), этот узел. Узел является своим собственным одноуровневым элементом. Если anotherNode
нуль, возвращает false.anotherNode
- узел, чтобы протестировать как одноуровневый элемент этого узлаanotherNode
одноуровневый элемент этого узлаpublic int getSiblingCount()
1
).public DefaultMutableTreeNode getNextSibling()
children
public DefaultMutableTreeNode getPreviousSibling()
public boolean isLeaf()
getAllowsChildren
isLeaf
в интерфейсе TreeNode
getAllowsChildren()
public DefaultMutableTreeNode getFirstLeaf()
isLeaf()
, isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
public DefaultMutableTreeNode getLastLeaf()
isLeaf()
, isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
public DefaultMutableTreeNode getNextLeaf()
В этой реализации MutableNode
интерфейс, эта работа очень неэффективна. Чтобы определить следующий узел, этот метод сначала выполняет линейный поиск в дочернем списке родителя, чтобы найти текущий узел.
Та реализация делает работу подходящей для коротких обходов от известной позиции. Но пересекать все листы в дереве, следует использовать depthFirstEnumeration
перечислить узлы в дереве и использовании isLeaf
на каждом узле, чтобы определить, которые являются листами.
depthFirstEnumeration()
, isLeaf()
public DefaultMutableTreeNode getPreviousLeaf()
В этой реализации MutableNode
интерфейс, эта работа очень неэффективна. Чтобы определить предыдущий узел, этот метод сначала выполняет линейный поиск в дочернем списке родителя, чтобы найти текущий узел.
Та реализация делает работу подходящей для коротких обходов от известной позиции. Но пересекать все листы в дереве, следует использовать depthFirstEnumeration
перечислить узлы в дереве и использовании isLeaf
на каждом узле, чтобы определить, которые являются листами.
depthFirstEnumeration()
, isLeaf()
public int getLeafCount()
1
. Этот метод является O (n), где n является числом потомков этого узла.isNodeAncestor(javax.swing.tree.TreeNode)
public String toString()
toString()
к пользовательскому объекту этого узла, или пустой строке, если у узла нет никакого пользовательского объекта.toString
в class Object
getUserObject()
public Object clone()
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
ЧЕРНОВАЯ земля-b92