Класс DefaultTreeModel

Все реализованные интерфейсы:
Serializable, TreeModel
public class DefaultTreeModel
extends Object
implements Serializable, TreeModel

Простой шаблон данных дерева, использующий узлы TreeNodes. Для получения дополнительной информации и примеров использования DefaultTreeModel см. Как использовать деревья в Руководстве по Java.

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, добавлена поддержка долговременного хранения всех JavaBeans™ в пакете java.beans. См. XMLEncoder.

См. также:
Сериализованная форма

Поля

Модификатор и тип Поле Описание
protected boolean asksAllowsChildren

Определяет, как метод isLeaf определяет, является ли узел листом.

protected EventListenerList listenerList

Слушатели.

protected TreeNode root

Корень дерева.

Конструкторы

Конструктор Описание
DefaultTreeModel​(TreeNode root)

Создаёт дерево, в котором любой узел может иметь дочерние узлы.

DefaultTreeModel​(TreeNode root, boolean asksAllowsChildren)

Создаёт дерево, задавая, может ли любой узел иметь дочерние узлы или только определённые узлы могут иметь дочерние узлы.

Методы

Модификатор и тип Метод Описание
void addTreeModelListener​(TreeModelListener l)

Добавляет слушателя для события TreeModelEvent, публикуемого после изменения дерева.

boolean asksAllowsChildren()

Указывает, как определяются листья.

protected void fireTreeNodesChanged​(Object source, Object[] path, int[] childIndices, Object[] children)

Уведомляет всех слушателей, проявивших интерес к уведомлению об этом типе события.

protected void fireTreeNodesInserted​(Object source, Object[] path, int[] childIndices, Object[] children)

Уведомляет всех слушателей, проявивших интерес к уведомлению об этом типе события.

protected void fireTreeNodesRemoved​(Object source, Object[] path, int[] childIndices, Object[] children)

Уведомляет всех слушателей, проявивших интерес к уведомлению об этом типе события.

protected void fireTreeStructureChanged​(Object source, Object[] path, int[] childIndices, Object[] children)

Уведомляет всех слушателей, проявивших интерес к уведомлению об этом типе события.

Object getChild​(Object parent, int index)

Возвращает потомка parent с индексом index в массиве дочерних элементов родителя.

int getChildCount​(Object parent)

Возвращает количество дочерних элементов parent.

int getIndexOfChild​(Object parent, Object child)

Возвращает индекс потомка в родителе.

<T extends EventListener>
T[]
getListeners​(Class<T> listenerType)

Возвращает массив всех объектов, зарегистрированных как FooListener в данном шаблоне.

TreeNode[] getPathToRoot​(TreeNode aNode)

Строит родителей узла до корневого узла включительно, где исходный узел является последним элементом возвращаемого массива.

protected TreeNode[] getPathToRoot​(TreeNode aNode, int depth)

Строит родителей узла до корневого узла включительно, где исходный узел является последним элементом возвращаемого массива.

Object getRoot()

Возвращает корень дерева.

TreeModelListener[] getTreeModelListeners()

Возвращает массив всех слушателей модели дерева, зарегистрированных в данной модели.

void insertNodeInto​(MutableTreeNode newChild, MutableTreeNode parent, int index)

Вызывается для вставки newChild в место index в дочерних элементах parents.

boolean isLeaf​(Object node)

Возвращает, является ли указанный узел листом.

void nodeChanged​(TreeNode node)

Вызывается после изменения способа представления узла в дереве.

void nodesChanged​(TreeNode node, int[] childIndices)

Вызывается после изменения способа представления дочерних элементов, идентифицированных childIndicies, в дереве.

void nodeStructureChanged​(TreeNode node)

Вызывается, если вы полностью изменили потомков узла и потомков потомков...

void nodesWereInserted​(TreeNode node, int[] childIndices)

Вызывается после вставки некоторых TreeNodes в узел.

void nodesWereRemoved​(TreeNode node, int[] childIndices, Object[] removedChildren)

Вызывается после удаления некоторых TreeNodes из узла.

void reload()

Вызов этого метода, если вы изменили TreeNode, от которых зависит эта модель.

void reload​(TreeNode node)

Вызов этого метода, если вы изменили TreeNode, от которых зависит эта модель.

void removeNodeFromParent​(MutableTreeNode node)

Отправьте это сообщение, чтобы удалить узел из его родителя.

void removeTreeModelListener​(TreeModelListener l)

Удаляет слушателя, ранее добавленного с помощью addTreeModelListener().

void setAsksAllowsChildren​(boolean newValue)

Устанавливает, нужно ли проверять лиственность, запрашивая getAllowsChildren() или isLeaf() у TreeNodes.

void setRoot​(TreeNode root)

Устанавливает корень в root.

void valueForPathChanged​(TreePath path, Object newValue)

Это устанавливает пользовательский объект TreeNode, идентифицированный путем, и публикует измененный узел.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

root

protected TreeNode root

Корень дерева.

listenerList

protected EventListenerList listenerList

Слушатели.

asksAllowsChildren

protected boolean asksAllowsChildren

Определяет, как метод isLeaf определяет, является ли узел листом. Если значение true, узел является листом, если он не допускает дочерних элементов. (Если он допускает дочерние элементы, он не является листом, даже если дочерних элементов нет.) Это позволяет, например, различать узлы папки и узлы файла в файловой системе.

Если это значение равно false, любой узел без дочерних элементов является листом, и любой узел может получить дочерние элементы.

См. также:
TreeNode.getAllowsChildren(), TreeModel.isLeaf(java.lang.Object), setAsksAllowsChildren(boolean)

Конструкторы

DefaultTreeModel

@ConstructorProperties("root")
public DefaultTreeModel(TreeNode root)

Создаёт дерево, в котором любой узел может иметь дочерние узлы.

Параметры:
root - объект TreeNode, являющийся корнем дерева
См. также:
DefaultTreeModel(TreeNode, boolean)

DefaultTreeModel

public DefaultTreeModel(TreeNode root,
                        boolean asksAllowsChildren)

Создаёт дерево, задавая, может ли любой узел иметь дочерние узлы или только определённые узлы могут иметь дочерние узлы.

Параметры:
root - объект TreeNode, являющийся корнем дерева
asksAllowsChildren - булево значение, false, если любой узел может иметь дочерние узлы, true, если каждый узел должен определить, может ли он иметь дочерние узлы
См. также:
asksAllowsChildren

Методы

setAsksAllowsChildren

public void setAsksAllowsChildren(boolean newValue)

Устанавливает, нужно ли проверять наличие дочерних элементов, обращаясь к методу getAllowsChildren() или isLeaf() для узлов дерева. Если newvalue имеет значение true, вызывается getAllowsChildren(), в противном случае — isLeaf().

Параметры:
newValue - если true, вызывается getAllowsChildren(), иначе вызывается isLeaf()

asksAllowsChildren

public boolean asksAllowsChildren()

Определяет, как определяются лиственные узлы.

Возвращает:
true, если лиственными являются только узлы, которые не допускают наличия дочерних элементов; false, если лиственными являются узлы, не имеющие дочерних элементов (даже если это разрешено)
См. также:
asksAllowsChildren

setRoot

public void setRoot(TreeNode root)

Устанавливает корень в root. Значение null для root означает, что дерево должно отображать пустое содержимое, и это допустимое значение.

Параметры:
root - новое значение корня дерева

getRoot

public Object getRoot()

Возвращает корень дерева. Возвращает null только в том случае, если дерево не содержит узлов.

Определено в:
getRoot в интерфейсе TreeModel
Возвращает:
корень дерева

getIndexOfChild

public int getIndexOfChild(Object parent,
                           Object child)

Возвращает индекс дочернего элемента в родительском элементе. Если родительский или дочерний элемент null, возвращается -1.

Определено в:
getIndexOfChild в интерфейсе TreeModel
Параметры:
parent - узел в дереве, полученный из этого источника данных
child - узел, который нас интересует
Возвращает:
индекс дочернего элемента в родительском элементе или -1, если родительский или дочерний элемент null

getChild

public Object getChild(Object parent,
                       int index)

Возвращает дочерний элемент родительского элемента с индексом index в массиве дочерних элементов родителя. родитель должен быть узлом, ранее полученным из этого источника данных. Не должно возвращать null, если индекс является допустимым индексом для родителя (то есть индекс ≥ 0 && индекс < getChildCount(родитель)).

Определено в:
getChild в интерфейсе TreeModel
Параметры:
parent - узел в дереве, полученный из этого источника данных
index - индекс возвращаемого дочернего элемента
Возвращает:
дочерний элемент родитель с индексом индекс

getChildCount

public int getChildCount(Object parent)

Возвращает количество дочерних элементов родительского элемента. Возвращает 0, если узел является лиственным или не имеет дочерних элементов. родитель должен быть узлом, ранее полученным из этого источника данных.

Определено в:
getChildCount в интерфейсе TreeModel
Параметры:
parent - узел в дереве, полученный из этого источника данных
Возвращает:
количество дочерних элементов узла родитель

isLeaf

public boolean isLeaf(Object node)

Возвращает значение, указывающее, является ли указанный узел лиственным. Способ проверки зависит от параметра askAllowsChildren.

Определено в:
isLeaf в интерфейсе TreeModel
Параметры:
node - узел для проверки
Возвращает:
true, если узел является лиственным
См. также:
asksAllowsChildren, TreeModel.isLeaf(java.lang.Object)

reload

public void reload()

Вызывается, если были изменены TreeNode , от которых зависит эта модель. Модель уведомит всех своих слушателей об изменениях в модели.

valueForPathChanged

public void valueForPathChanged(TreePath path,
                                Object newValue)

Устанавливает пользовательский объект узла TreeNode, определенного путем, и публикует событие изменения узла. Если вы используете пользовательские объекты в TreeModel, вам нужно будет переопределить этот метод и установить пользовательский объект изменённого узла на осмысленное значение.

Определено в:
valueForPathChanged в интерфейсе TreeModel
Параметры:
path - путь к узлу, который пользователь изменил
newValue - новое значение из TreeCellEditor

insertNodeInto

public void insertNodeInto(MutableTreeNode newChild,
                           MutableTreeNode parent,
                           int index)

Вызывается для вставки newChild в позицию index в дочерних элементах родителя. Затем вызывается метод nodesWereInserted для создания соответствующего события. Это предпочтительный способ добавления дочерних элементов, так как он создает соответствующее событие.

Параметры:
newChild - дочерний узел для вставки
parent - узел, к которому будут добавлены дочерние узлы
index - индекс дочерних элементов родителя

removeNodeFromParent

public void removeNodeFromParent(MutableTreeNode node)

Вызывается для удаления узла из его родителя. Вызывается метод nodesWereRemoved для создания соответствующего события. Это предпочтительный способ удаления узла, так как он обрабатывает создание события за вас.

Параметры:
node - узел, который нужно удалить из родительского элемента

nodeChanged

public void nodeChanged(TreeNode node)

Вызывается после изменения представления узла в дереве.

Параметры:
node - изменённый узел

reload

public void reload(TreeNode node)

Вызывается, если были изменены TreeNode , от которых зависит эта модель. Модель уведомит всех своих слушателей об изменениях в модели ниже указанного узла.

Параметры:
node - узел, ниже которого произошли изменения в модели

nodesWereInserted

public void nodesWereInserted(TreeNode node,
                              int[] childIndices)

Вызывается после вставки нескольких узлов TreeNode в узел. childIndices должен содержать индексы новых элементов и должен быть отсортирован по возрастанию.

Параметры:
node - родительский узел, количество дочерних элементов которого увеличилось
childIndices - индексы вставленных дочерних элементов

nodesWereRemoved

public void nodesWereRemoved(TreeNode node,
                             int[] childIndices,
                             Object[] removedChildren)

Вызывается после удаления нескольких узлов TreeNode из узла. childIndices должен содержать индексы удалённых элементов и должен быть отсортирован по возрастанию. removedChildren должен быть массивом объектов удалённых дочерних элементов.

Параметры:
node - родительский узел, у которого были удалены дочерние элементы
childIndices - индексы удалённых дочерних элементов
removedChildren - массив объектов удалённых дочерних элементов

nodesChanged

public void nodesChanged(TreeNode node,
                         int[] childIndices)

Вызывается после изменения представления дочерних элементов, идентифицируемых childIndicies, в дереве.

Параметры:
node - изменённый узел
childIndices - индексы изменённых дочерних элементов

nodeStructureChanged

public void nodeStructureChanged(TreeNode node)

Вызывается, если вы полностью изменили дочерние элементы узла и дочерние элементы его дочерних элементов... Это вызовет событие treeStructureChanged.

Параметры:
node - изменённый узел

getPathToRoot

public TreeNode[] getPathToRoot(TreeNode aNode)

Строит родителей узла до корневого узла включительно, где исходный узел является последним элементом в возвращаемом массиве. Длина возвращаемого массива указывает глубину узла в дереве.

Параметры:
aNode - узел TreeNode, для которого требуется получить путь
Возвращает:
массив узлов TreeNode, определяющий путь от корня

getPathToRoot

protected TreeNode[] getPathToRoot(TreeNode aNode,
                                   int depth)

Строит родителей узла до корневого узла включительно, где исходный узел является последним элементом в возвращаемом массиве. Длина возвращаемого массива указывает глубину узла в дереве.

Параметры:
aNode - узел TreeNode, для которого требуется получить путь
depth - целое число, задающее количество шагов, уже сделанных в сторону корня (при рекурсивных вызовах), используемое для определения размера возвращаемого массива
Возвращает:
массив узлов TreeNode, определяющий путь от корня до указанного узла

addTreeModelListener

public void addTreeModelListener(TreeModelListener l)

Добавляет слушателя событий TreeModelEvent, оповещаемых после изменений в дереве.

Определено в:
addTreeModelListener в интерфейсе TreeModel
Параметры:
l - слушатель для добавления
См. также:
removeTreeModelListener(javax.swing.event.TreeModelListener)

removeTreeModelListener

public void removeTreeModelListener(TreeModelListener l)

Удаляет слушателя, ранее добавленного с помощью addTreeModelListener().

Определено в:
removeTreeModelListener в интерфейсе TreeModel
Параметры:
l - слушатель для удаления
См. также:
addTreeModelListener(javax.swing.event.TreeModelListener)

getTreeModelListeners

public TreeModelListener[] getTreeModelListeners()

Возвращает массив всех слушателей событий модели дерева, зарегистрированных в этой модели.

Возвращает:
все слушатели TreeModelListener этой модели или пустой массив, если слушателей событий модели дерева нет
С:
1.4
См. также:
addTreeModelListener(javax.swing.event.TreeModelListener), removeTreeModelListener(javax.swing.event.TreeModelListener)

fireTreeNodesChanged

protected void fireTreeNodesChanged(Object source,
                                    Object[] path,
                                    int[] childIndices,
                                    Object[] children)

Уведомляет всех слушателей, которые проявили интерес к уведомлениям об этом типе события. Экземпляр события создается ленивым образом с использованием параметров, переданных в метод fire.

Параметры:
source - источник TreeModelEvent; обычно this
path - путь к родительскому элементу узлов, которые изменились; используйте null для определения изменения корня
childIndices - индексы изменённых элементов
children - изменённые элементы

fireTreeNodesInserted

protected void fireTreeNodesInserted(Object source,
                                     Object[] path,
                                     int[] childIndices,
                                     Object[] children)

Уведомляет всех слушателей, которые зарегистрировали интерес к уведомлениям об этом типе события. Экземпляр события создаётся лениво с использованием параметров, переданных в метод fire.

Параметры:
source - источник TreeModelEvent; обычно this
path - путь к родителю, к которому были добавлены узлы
childIndices - индексы новых элементов
children - новые элементы

fireTreeNodesRemoved

protected void fireTreeNodesRemoved(Object source,
                                    Object[] path,
                                    int[] childIndices,
                                    Object[] children)

Уведомляет всех слушателей, которые зарегистрировали интерес к уведомлениям об этом типе события. Экземпляр события создаётся лениво с использованием параметров, переданных в метод fire.

Параметры:
source - источник TreeModelEvent; обычно this
path - путь к родителю, из которого были удалены узлы
childIndices - индексы удалённых элементов
children - удалённые элементы

fireTreeStructureChanged

protected void fireTreeStructureChanged(Object source,
                                        Object[] path,
                                        int[] childIndices,
                                        Object[] children)

Уведомляет всех слушателей, которые зарегистрировали интерес к уведомлениям об этом типе события. Экземпляр события создаётся лениво с использованием параметров, переданных в метод fire.

Параметры:
source - источник TreeModelEvent; обычно this
path - путь к родителю структуры, которая изменилась; используйте null для определения изменения корня
childIndices - индексы затронутых элементов
children - затронутые элементы

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)

Возвращает массив всех объектов, в настоящее время зарегистрированных как FooListener для этой модели. FooListener регистрируются с помощью метода addFooListener.

Вы можете указать аргумент listenerType с помощью литерала класса, например FooListener.class. Например, вы можете запросить слушателей модели дерева для DefaultTreeModel m следующим кодом:

TreeModelListener[] tmls = (TreeModelListener[])(m.getListeners(TreeModelListener.class));
Если таких слушателей нет, этот метод возвращает пустой массив.
Параметры типа:
T - тип слушателя
Параметры:
listenerType - тип запрашиваемых слушателей
Возвращает:
массив всех объектов, зарегистрированных как FooListener в этом компоненте, или пустой массив, если такие слушатели не были добавлены
Исключения:
ClassCastException - если listenerType не указывает класс или интерфейс, реализующий java.util.EventListener
С:
1.3
См. также:
getTreeModelListeners()

© 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/DefaultTreeModel.html

Spec-Zone .ru
спецификации, руководства, описания, API