Интерфейс TreeModel
- Все известные реализующие классы:
DefaultTreeModel
public interface TreeModel
JTree. JTree и связанные с ним классы широко используют TreePath для идентификации узлов в TreeModel. Если TreeModel возвращает один и тот же объект, согласно сравнению с помощью equals, для двух разных индексов одного родителя, то соответствующие объекты TreePath также будут считаться равными. Некоторые реализации могут предполагать, что если два TreePath равны, то они идентифицируют один и тот же узел. Несоблюдение этого условия может привести к проблемам при отрисовке и другим неожиданным результатам. Иными словами, если getChild для заданного родителя возвращает один и тот же объект (как определяется с помощью equals), могут возникнуть проблемы, поэтому рекомендуется этого избегать.
Аналогично, JTree и связанные с ним классы помещают TreePath в Map. Поэтому, если узел запрашивается дважды, возвращаемые значения должны быть равны (согласно методу equals) и иметь одинаковый hashCode.
Дополнительные сведения о моделях деревьев, включая пример пользовательской реализации, см. в разделе Как работать с деревьями в учебнике по Java.
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addTreeModelListener |
Добавляет слушателя для TreeModelEvent, отправляемого после изменения дерева. |
Object |
getChild |
Возвращает дочерний элемент parent с индексом index в массиве дочерних элементов родителя. |
int |
getChildCount |
Возвращает количество дочерних элементов parent. |
int |
getIndexOfChild |
Возвращает индекс дочернего элемента в родителе. |
Object |
getRoot() |
Возвращает корень дерева. |
boolean |
isLeaf |
Возвращает true, если node является листом. |
void |
removeTreeModelListener |
Удаляет слушателя, ранее добавленного с помощью addTreeModelListener. |
void |
valueForPathChanged |
Вызывается, когда пользователь изменил значение элемента, идентифицированного path, на newValue. |
Подробное описание методов
getRoot
Object getRoot()
null только в том случае, если дерево не содержит узлов.- Возвращает:
- корень дерева
getChild
Object getChild(Object parent, int index)
parent с индексом index в массиве дочерних элементов родителя. parent должен быть узлом, ранее полученным из этого источника данных. Если index является допустимым индексом для parent (то есть index >= 0 &&
index < getChildCount(parent), метод не должен возвращать null.- Параметры:
-
parent— узел дерева, полученный из этого источника данных -
index— индекс возвращаемого дочернего элемента - Возвращает:
- дочерний элемент
parentс индексомindex
getChildCount
int getChildCount(Object parent)
parent. Возвращает 0, если узел является листом или у него нет дочерних элементов. parent должен быть узлом, ранее полученным из этого источника данных.- Параметры:
-
parent— узел дерева, полученный из этого источника данных - Возвращает:
- количество дочерних элементов узла
parent
isLeaf
boolean isLeaf(Object node)
true, если node является листом. Этот метод может вернуть false, даже если у node нет дочерних элементов. Например, каталог в файловой системе может не содержать файлов: узел, представляющий каталог, не является листом, но при этом у него нет дочерних элементов.- Параметры:
-
node— узел дерева, полученный из этого источника данных - Возвращает:
- true, если
nodeявляется листом
valueForPathChanged
void valueForPathChanged(TreePath path, Object newValue)
path, на newValue. Если newValue обозначает действительно новое значение, модель должна отправить событие treeNodesChanged.- Параметры:
-
path— путь к узлу, значение которого изменил пользователь -
newValue— новое значение из TreeCellEditor
getIndexOfChild
int getIndexOfChild(Object parent, Object child)
parent или child равен null, возвращает -1. Если parent или child не принадлежит этой модели дерева, возвращает -1.- Параметры:
-
parent— узел дерева, полученный из этого источника данных -
child— интересующий нас узел - Возвращает:
- индекс дочернего элемента в родителе или -1, если
childилиparentравныnullлибо не принадлежат этой модели дерева
addTreeModelListener
void addTreeModelListener(TreeModelListener l)
TreeModelEvent, отправляемого после изменения дерева.- Параметры:
-
l— добавляемый слушатель - См. также:
removeTreeModelListener
void removeTreeModelListener(TreeModelListener l)
addTreeModelListener.- Параметры:
-
l— удаляемый слушатель - См. также:
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/tree/TreeModel.html