Интерфейс 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) |
Добавляет слушателя для |
Object |
getChild(Object parent,
int index) |
Возвращает потомка |
int |
getChildCount(Object parent) |
Возвращает количество потомков |
int |
getIndexOfChild(Object parent,
Object child) |
Возвращает индекс потомка в родителе. |
Object |
getRoot() |
Возвращает корень дерева. |
boolean |
isLeaf(Object node) |
Возвращает |
void |
removeTreeModelListener(TreeModelListener l) |
Удаляет слушателя, добавленного ранее с помощью |
void |
valueForPathChanged(TreePath path,
Object 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, 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/TreeModel.html