Класс TreeModelEvent
- Все реализованные интерфейсы:
Serializable
public class TreeModelEvent extends EventObject
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, добавлена поддержка длительного хранения всех JavaBeans в пакете java.beans. См. XMLEncoder.
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected int[] |
childIndices |
Индексы, определяющие положение, где были дети. |
protected Object[] |
children |
Дети, которые были удалены. |
protected TreePath |
path |
Путь к родительскому элементу узлов, которые были изменены. |
Поля, объявленные в классе java.util.EventObject
source
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
TreeModelEvent |
Используется для создания события, когда структура узла изменилась каким-то образом, определяя путь к корню изменённого поддерева как массив объектов. |
TreeModelEvent |
Используется для создания события, когда узлы были изменены, вставлены или удалены, определяя путь к родителю изменённых элементов как массив объектов. |
TreeModelEvent |
Используется для создания события, когда структура узла изменилась каким-то образом, определяя путь к корню изменённого поддерева как объект TreePath. |
TreeModelEvent |
Используется для создания события, когда узлы были изменены, вставлены или удалены, определяя путь к родителю изменённых элементов как объект TreePath. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int[] |
getChildIndices() |
Возвращает значения индексов детей. |
Object[] |
getChildren() |
Возвращает объекты, являющиеся дочерними элементами узла, идентифицированного по getPath в позициях, указанных по getChildIndices. |
Object[] |
getPath() |
Метод-обёртка для получения массива объектов из экземпляра TreePath, который оборачивает это событие. |
TreePath |
getTreePath() |
Для всех событий, кроме treeStructureChanged, возвращает родителя изменённых узлов. |
String |
toString() |
Возвращает строку, отображающую и идентифицирующую свойства этого объекта. |
Методы, объявленные в классе java.util.EventObject
getSource
Подробное описание полей
path
protected TreePath path
childIndices
protected int[] childIndices
children
protected Object[] children
Подробное описание конструкторов
TreeModelEvent
public TreeModelEvent(Object source, Object[] path, int[] childIndices, Object[] children)
int. Индексы в этом массиве должны быть упорядочены по возрастанию. Для изменений, индексы в модели точно соответствуют индексам элементов, которые в данный момент отображаются в интерфейсе пользователя. В результате, некритично, если индексы не находятся в точном порядке. Но после нескольких вставок или удалений, элементы, которые сейчас отображаются в интерфейсе, больше не соответствуют элементам в модели. Поэтому важно правильно указать индексы для вставок и удалений.
Для вставок, индексы представляют конечное состояние дерева после того, как вставки произошли. Поскольку индексы должны быть указаны в порядке возрастания, наиболее естественный метод обработки заключается в выполнении вставок, начиная с наименьшего индекса и двигаясь к наибольшему. Собирайте вектор объектов Integer, которые указывают места вставок, по мере продвижения, затем преобразуйте вектор в массив int, чтобы создать событие. Когда индекс позиции равен нулю, узел вставляется в начало списка. Когда индекс позиции равен размеру списка, узел "вставляется" в конец списка.
Для удалений, индексы представляют начальное состояние дерева до того, как удаления произошли. Поскольку индексы должны быть указаны в порядке возрастания, наиболее естественный метод обработки заключается в использовании счётчика удалений. Начните с инициализации счётчика нулём и работайте по списку от наименьшего к наибольшему. Каждый раз, когда вы делаете удаление, добавьте текущее значение счётчика удалений к индексу позиции, где произошло удаление, и добавьте результат в вектор мест удалений, используя addElement(). Затем увеличьте счётчик удалений. Индексы позиций, хранящиеся в векторе, таким образом, отражают эффект всех предыдущих удалений, поэтому они представляют позицию каждого объекта в начальном дереве. (Вы также можете начать с наибольшего индекса и двигаться назад к наименьшему, собирая вектор мест удалений по мере продвижения, используя insertElementAt(Integer, 0)). Как бы вы ни генерировали вектор начальных позиций, вам необходимо преобразовать вектор объектов Integer в массив int, чтобы создать событие.
Примечания:
- Как и метод
insertNodeIntoв классеDefaultTreeModel,insertElementAtдобавляет вVector, когда индекс совпадает с размером вектора. Поэтому вы можете использоватьinsertElementAt(Integer, 0), даже если вектор пуст. - Для создания события изменения узла для корневого узла, укажите родительский узел и индексы дочерних узлов как
null.
- Параметры:
-
source- Объект, ответственный за генерацию события (обычно создатель объекта события передаётthisв качестве значения) -
path- массив объектов, определяющий путь к родителю изменённого элемента(ов), где первый элемент массива — объект, хранящийся в корневом узле, а последний — объект, хранящийся в родительском узле -
childIndices- массивint, определяющий индексные значения удалённых элементов. Индексы должны быть упорядочены по возрастанию -
children- массив объектов, содержащий вставленные, удалённые или изменённые объекты - См. также:
TreeModelEvent
public TreeModelEvent(Object source, TreePath path, int[] childIndices, Object[] children)
TreeModelEvent(Object,Object[],int[],Object[]).- Параметры:
-
source- Объект, ответственный за генерацию события (обычно создатель объекта события передаётthisв качестве значения) -
path- Объект TreePath, определяющий путь к родителю изменённого элемента(ов) -
childIndices- массивint, определяющий индексные значения изменённых элементов -
children- массив объектов, содержащий вставленные, удалённые или изменённые объекты - См. также:
TreeModelEvent
public TreeModelEvent(Object source, Object[] path)
Примечание:
JTree сворачивает все узлы под указанным узлом, так что видны только его непосредственные дочерние узлы.
- Параметры:
-
source- Объект, ответственный за генерацию события (обычно создатель объекта события передаётthisв качестве значения) -
path- массив объектов, определяющий путь к корню изменённого поддерева, где первый элемент массива — объект, хранящийся в корневом узле, а последний — объект, хранящийся в изменённом узле - См. также:
TreeModelEvent
public TreeModelEvent(Object source, TreePath path)
TreeModelEvent(Object,Object[]).- Параметры:
-
source- Объект, ответственный за генерацию события (обычно создатель объекта события передаётthisв качестве значения) -
path- объект TreePath, определяющий путь к изменению. В DefaultTreeModel этот объект содержит массив объектов данных пользователя, но подкласс TreePath может использовать совершенно другой механизм — например, номер идентификатора узла - См. также:
Подробное описание методов
getTreePath
public TreePath getTreePath()
getChildIndices используются для получения списка затронутых узлов. Исключением является событие treeNodesChanged, которое должно определять корень, в этом случае оно вернёт корень, а getChildIndices вернёт null.
- Возвращает:
- объект TreePath, используемый для определения изменённых узлов.
- См. также:
getPath
public Object[] getPath()
- Возвращает:
- массив объектов, где первый объект — тот, что хранится в корне, а последний — тот, что хранится в узле, определяемом путём
getChildren
public Object[] getChildren()
getPath в позициях, указанных в getChildIndices. Если это событие удаления, возвращаемые объекты больше не являются дочерними узлами родительского узла.- Возвращает:
- массив объектов, содержащий дочерние узлы, указанные в событии
- См. также:
getChildIndices
public int[] getChildIndices()
- Возвращает:
- массив
int, содержащий местоположения индексов для дочерних узлов, указанных в событии
toString
public String toString()
- Overrides:
-
toStringв классеEventObject - Возвращает:
- строковое представление этого объекта
© 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/event/TreeModelEvent.html