Класс 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 | Определяет, как метод |
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> | getListeners(Class<T> listenerType) | Возвращает массив всех объектов, зарегистрированных как |
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() | Вызов этого метода, если вы изменили |
void | reload(TreeNode node) | Вызов этого метода, если вы изменили |
void | removeNodeFromParent(MutableTreeNode node) | Отправьте это сообщение, чтобы удалить узел из его родителя. |
void | removeTreeModelListener(TreeModelListener l) | Удаляет слушателя, ранее добавленного с помощью addTreeModelListener(). |
void | setAsksAllowsChildren(boolean newValue) | Устанавливает, нужно ли проверять лиственность, запрашивая getAllowsChildren() или isLeaf() у TreeNodes. |
void | setRoot(TreeNode 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, любой узел без дочерних элементов является листом, и любой узел может получить дочерние элементы.
Конструкторы
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 только в том случае, если дерево не содержит узлов.
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