Интерфейс TreeModel
- Все известные реализующие классы:
DefaultTreeModel
public interface TreeModel
JTree. JTree и связанные с ней классы широко используют TreePath для идентификации узлов в TreeModel. Если TreeModel возвращает один и тот же объект, сравниваемый с помощью equals, в двух разных индексах у одного и того же родителя, то результирующие TreePath объекты также будут считаться равными. Некоторые реализации могут предполагать, что если два TreePath равны, они идентифицируют один и тот же узел. Если это условие не выполняется, могут возникнуть проблемы с отображением и другие неясности. Другими словами, если getChild для заданного родителя возвращает один и тот же объект (определяемый с помощью equals) могут возникнуть проблемы, и рекомендуется этого избегать.
Аналогично, JTree и связанные с ней классы размещают TreePath в Map. Таким образом, если узел запрашивается дважды, возвращаемые значения должны быть равны (используя метод equals) и иметь одинаковый hashCode.
Дополнительную информацию о моделях деревьев, включая пример пользовательской реализации, см. в Как использовать деревья в Java Tutorial.
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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 должен быть узлом, ранее полученным из этого источника данных. Это не должно возвращать 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
void removeTreeModelListener(TreeModelListener l)
addTreeModelListener.- Параметры:
-
l- удаляемый слушатель - См. также:
© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/tree/TreeModel.html