Класс DefaultTreeModel
- java.lang.Object
-
- javax.swing.tree.DefaultTreeModel
- Все реализованные интерфейсы:
- Serializable, TreeModel
public class DefaultTreeModel extends Object implements Serializable, TreeModel
Простая модель данных дерева, использующая TreeNodes. Дополнительную информацию и примеры, использующие DefaultTreeModel, см. в Руководстве по деревьям в Java Tutorial.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками 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 в потомках parent. |
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, то любой узел, у которого нет дочерних элементов, является листом, и любой узел может получить дочерние элементы.
- См. также:
-
TreeNode.getAllowsChildren(),TreeModel.isLeaf(java.lang.Object),setAsksAllowsChildren(boolean)
Конструкторы
DefaultTreeModel
@ConstructorProperties(value="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)
Устанавливает, нужно ли проверять листвость, спрашивая у TreeNodes getAllowsChildren() или isLeaf(). Если newvalue равно true, вызывается getAllowsChildren(), в противном случае – isLeaf().
asksAllowsChildren
public boolean asksAllowsChildren()
Указывает, как определяются листья.
- Возвращает:
- true, если листьями являются только узлы, которые не допускают дочерних элементов, false, если узлы без дочерних элементов (даже если они разрешены) являются листьями
- См. также:
asksAllowsChildren
setRoot
public void setRoot(TreeNode root)
Устанавливает корень в 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) Возвращает дочерний элемент родителя с индексом индекс в массиве дочерних элементов родителя. родитель должен быть узлом, ранее полученным из этого источника данных. Это не должно возвращать null, если индекс является допустимым индексом для родителя (то есть индекс >= 0 && индекс < getChildCount(родитель)).
- Задано в:
-
getChildв интерфейсеTreeModel - Параметры:
-
parent- узел в дереве, полученный из этого источника данных - Возвращает:
- дочерний элемент родителя с индексом индекс
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()
Вызовите этот метод, если вы изменили TreeNodes, от которых зависит эта модель. Модель уведомит всех своих прослушивателей о том, что модель изменилась.
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 в дочерних элементах parents. Затем вызывается метод nodesWereInserted для создания соответствующего события. Это предпочтительный способ добавления дочерних элементов, так как он создает соответствующее событие.
removeNodeFromParent
public void removeNodeFromParent(MutableTreeNode node)
Вызов этого метода удаляет узел из его родителя. Вызывается метод nodesWereRemoved для создания соответствующего события. Это предпочтительный способ удаления узла, так как он обрабатывает создание события за вас.
nodeChanged
public void nodeChanged(TreeNode node)
Вызовите этот метод после изменения представления узла в дереве.
reload
public void reload(TreeNode node)
Вызовите этот метод, если вы изменили TreeNodes, от которых зависит эта модель. Модель уведомит всех своих прослушивателей о том, что модель изменилась ниже заданного узла.
- Параметры:
-
node- узел, ниже которого модель изменилась
nodesWereInserted
public void nodesWereInserted(TreeNode node,
int[] childIndices) Вызовите этот метод после вставки некоторых TreeNodes в узел. childIndices должны быть индексами новых элементов и должны быть отсортированы по возрастанию.
nodesWereRemoved
public void nodesWereRemoved(TreeNode node,
int[] childIndices,
Object[] removedChildren) Вызовите этот метод после удаления некоторых TreeNodes из узла. childIndices должны быть индексами удаленных элементов и должны быть отсортированы по возрастанию. А removedChildren должен быть массивом объектов дочерних элементов, которые были удалены.
nodesChanged
public void nodesChanged(TreeNode node,
int[] childIndices) Вызовите этот метод после изменения представления дочерних элементов, идентифицированных childIndicies, в дереве.
nodeStructureChanged
public void nodeStructureChanged(TreeNode node)
Вызовите этот метод, если вы полностью изменили дочерние элементы узла и дочерние элементы его дочерних элементов... Это вызовет событие treeStructureChanged.
getPathToRoot
public TreeNode[] getPathToRoot(TreeNode aNode)
Строит родителей узла до и включая корневой узел, где исходный узел является последним элементом в возвращаемом массиве. Длина возвращаемого массива указывает глубину узла в дереве.
- Параметры:
-
aNode- TreeNode, для которого нужно получить путь
getPathToRoot
protected TreeNode[] getPathToRoot(TreeNode aNode,
int depth) Строит родителей узла до и включая корневой узел, где исходный узел является последним элементом в возвращаемом массиве. Длина возвращаемого массива указывает глубину узла в дереве.
- Параметры:
-
aNode- TreeNode, для которого нужно получить путь -
depth- целое число, задающее количество шагов, уже сделанных к корню (при рекурсивных вызовах), используемое для определения размера возвращаемого массива - Возвращает:
- массив TreeNodes, дающий путь от корня до указанного узла
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));Если таких слушателей не существует, этот метод возвращает пустой массив.
- Параметры:
-
listenerType- тип запрашиваемых слушателей; этот параметр должен указывать интерфейс, унаследованный отjava.util.EventListener - Возвращает:
- массив всех объектов, зарегистрированных как
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.