Spec-Zone.ru › OpenJDK 27

Класс DefaultTreeModel

java.lang.Object
javax.swing.tree.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)
Возвращает массив всех объектов, зарегистрированных в этой модели в качестве FooListeners.
TreeNode[] getPathToRoot(TreeNode aNode)
Формирует список родительских узлов node вплоть до корневого узла включительно; исходный узел является последним элементом возвращаемого массива.
protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
Формирует список родительских узлов node вплоть до корневого узла включительно; исходный узел является последним элементом возвращаемого массива.
Object getRoot()
Возвращает корень дерева.
TreeModelListener[] getTreeModelListeners()
Возвращает массив всех слушателей модели дерева, зарегистрированных в этой модели.
void insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)
Вызовите этот метод, чтобы вставить newChild в дочерние узлы родительского узла на позицию index.
boolean isLeaf(Object node)
Возвращает, является ли указанный узел листовым.
void nodeChanged(TreeNode node)
Вызовите этот метод после изменения способа представления узла в дереве.
void nodesChanged(TreeNode node, int[] childIndices)
Вызовите этот метод после изменения способа представления в дереве дочерних узлов, указанных в childIndices.
void nodeStructureChanged(TreeNode node)
Вызовите этот метод, если вы полностью изменили дочерние узлы node и дочерние узлы этих узлов...
void nodesWereInserted(TreeNode node, int[] childIndices)
Вызовите этот метод после вставки нескольких TreeNodes в node.
void nodesWereRemoved(TreeNode node, int[] childIndices, Object[] removedChildren)
Вызовите этот метод после удаления нескольких TreeNodes из node.
void reload()
Вызовите этот метод, если вы изменили TreeNodes, от которых зависит эта модель.
void reload(TreeNode node)
Вызовите этот метод, если вы изменили TreeNodes, от которых зависит эта модель.
void removeNodeFromParent(MutableTreeNode node)
Вызовите этот метод, чтобы удалить узел из его родительского узла.
void removeTreeModelListener(TreeModelListener l)
Удаляет слушателя, ранее добавленного с помощью addTreeModelListener().
void setAsksAllowsChildren(boolean newValue)
Задает, следует ли проверять, является ли узел листовым, вызывая у TreeNodes getAllowsChildren() или isLeaf().
void setRoot(TreeNode root)
Задает корень равным root.
void valueForPathChanged(TreePath path, Object newValue)
Задает пользовательский объект TreeNode, определенного путем, и отправляет событие об изменении узла.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, подлежит удалению: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание полей

root

protected TreeNode root
Корень дерева.

listenerList

protected EventListenerList listenerList
Слушатели.

asksAllowsChildren

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

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

См. также:
  • TreeNode.getAllowsChildren()
  • TreeModel.isLeaf(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 — значение boolean: false, если у любого узла могут быть дочерние узлы; true, если у каждого узла проверяется, могут ли у него быть дочерние узлы
См. также:
  • asksAllowsChildren

Подробное описание методов

setAsksAllowsChildren

public void setAsksAllowsChildren(boolean newValue)
Задает, следует ли определять, является ли узел листовым, вызывая у TreeNode метод 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)
Возвращает дочерний узел parent с индексом index в массиве дочерних узлов родительского узла. parent должен быть узлом, ранее полученным из этого источника данных. Этот метод не должен возвращать null, если index является допустимым индексом для parent (то есть index >= 0 && index < getChildCount(parent)).
Определено в:
getChild в интерфейсе TreeModel
Параметры:
parent — узел дерева, полученный из этого источника данных
index — индекс возвращаемого дочернего узла
Возвращает:
дочерний узел parent с индексом index

getChildCount

public int getChildCount(Object parent)
Возвращает количество дочерних узлов parent. Возвращает 0, если узел является листовым или у него нет дочерних узлов. parent должен быть узлом, ранее полученным из этого источника данных.
Определено в:
getChildCount в интерфейсе TreeModel
Параметры:
parent — узел дерева, полученный из этого источника данных
Возвращает:
количество дочерних узлов родительского узла parent

isLeaf

public boolean isLeaf(Object node)
Возвращает, является ли указанный узел листовым. Способ проверки зависит от настройки asksAllowsChildren.
Определено в:
isLeaf в интерфейсе TreeModel
Параметры:
node — проверяемый узел
Возвращает:
true, если узел является листовым
См. также:
  • asksAllowsChildren
  • TreeModel.isLeaf(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 в дочерние узлы parent по индексу 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)
Вызовите этот метод после изменения способа представления дочерних узлов с индексами childIndices в дереве.
Параметры:
node — измененный узел
childIndices — индексы измененных дочерних узлов

nodeStructureChanged

public void nodeStructureChanged(TreeNode node)
Вызовите этот метод, если вы полностью изменили дочерние узлы узла и дочерние узлы этих дочерних узлов и т. д. Будет отправлено событие treeStructureChanged.
Параметры:
node — измененный узел

getPathToRoot

public TreeNode[] getPathToRoot(TreeNode aNode)
Формирует список родительских узлов node вплоть до корневого узла включительно; исходный узел является последним элементом возвращаемого массива. Длина возвращаемого массива определяет глубину узла в дереве.
Параметры:
aNode — TreeNode, для которого нужно получить путь
Возвращает:
массив TreeNode, задающий путь от корня

getPathToRoot

protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
Формирует список родительских узлов node вплоть до корневого узла включительно; исходный узел является последним элементом возвращаемого массива. Длина возвращаемого массива определяет глубину узла в дереве.
Параметры:
aNode — TreeNode, для которого нужно получить путь
depth — число int, задающее количество шагов, уже пройденных в направлении корня (при рекурсивных вызовах); используется для определения размера возвращаемого массива
Возвращает:
массив TreeNode, задающий путь от корня к указанному узлу

addTreeModelListener

public void addTreeModelListener(TreeModelListener l)
Добавляет слушателя для TreeModelEvent, отправляемого после изменения дерева.
Определено в:
addTreeModelListener в интерфейсе TreeModel
Параметры:
l — добавляемый слушатель
См. также:
  • removeTreeModelListener(TreeModelListener)

removeTreeModelListener

public void removeTreeModelListener(TreeModelListener l)
Удаляет слушателя, ранее добавленного с помощью addTreeModelListener().
Определено в:
removeTreeModelListener в интерфейсе TreeModel
Параметры:
l — удаляемый слушатель
См. также:
  • addTreeModelListener(TreeModelListener)

getTreeModelListeners

public TreeModelListener[] getTreeModelListeners()
Возвращает массив всех слушателей модели дерева, зарегистрированных в этой модели.
Возвращает:
все TreeModelListener этой модели или пустой массив, если в данный момент не зарегистрировано ни одного слушателя модели дерева
Начиная с версии:
1.4
См. также:
  • addTreeModelListener(TreeModelListener)
  • removeTreeModelListener(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()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API