Spec-Zone.ru › OpenJDK 24

Интерфейс TreeModel

Все известные реализующие классы:
DefaultTreeModel
public interface TreeModel
Модель, используемая JTree.

JTree и его связанные классы активно используют TreePath для идентификации узлов в TreeModel. Если TreeModel возвращает один и тот же объект, сравниваемый по equals, в двух разных индексах у одного родителя, то результирующие объекты TreePath также будут считаться равными. Некоторые реализации могут предполагать, что если два TreePath равны, они идентифицируют один и тот же узел. Если это условие не соблюдается, могут возникнуть проблемы с отрисовкой и другие аномалии. Другими словами, если getChild для заданного родителя возвращает один и тот же объект (как определяется по equals), могут возникнуть проблемы, и рекомендуется этого избегать.

Аналогично, JTree и его связанные классы размещают TreePath в Map. Таким образом, если узел запрашивается дважды, возвращаемые значения должны быть равны (используя метод equals) и иметь тот же hashCode.

Дополнительную информацию о моделях дерева, включая пример пользовательской реализации, см. в Руководстве по использованию деревьев в Java Tutorial.

См. также:
  • TreePath

Краткое описание методов

Модификатор и тип Метод Описание
void addTreeModelListener(TreeModelListener l)
Добавляет слушателя для события TreeModelEvent, генерируемого после изменения дерева.
Object getChild(Object parent, int index)
Возвращает потомка parent с индексом index в массиве потомков родителя.
int getChildCount(Object parent)
Возвращает количество потомков parent.
int getIndexOfChild(Object parent, Object child)
Возвращает индекс потомка в родителе.
Object getRoot()
Возвращает корень дерева.
boolean isLeaf(Object node)
Возвращает true, если node является листом.
void removeTreeModelListener(TreeModelListener l)
Удаляет слушателя, добавленного ранее с помощью addTreeModelListener.
void valueForPathChanged(TreePath path, Object newValue)
Вызывается, когда пользователь изменил значение элемента, идентифицируемого path, на newValue.

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

getRoot

Object getRoot()
Возвращает корень дерева. Возвращает null только если дерево не содержит узлов.
Возвращает:
корень дерева

getChild

Object getChild(Object parent, int index)
Возвращает потомка parent с индексом index в массиве потомков родителя. parent должен быть узлом, полученным ранее из этого источника данных. Это не должно возвращать null, если index является допустимым индексом для parent (то есть index >= 0 && index < getChildCount(parent).
Параметры:
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(javax.swing.event.TreeModelListener)

removeTreeModelListener

void removeTreeModelListener(TreeModelListener l)
Удаляет слушателя, добавленного ранее с помощью addTreeModelListener.
Параметры:
l - слушатель для удаления
См. также:
  • addTreeModelListener(javax.swing.event.TreeModelListener)

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/tree/TreeModel.html

Spec-Zone.ru

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