Класс TreeModelEvent
- java.lang.Object
-
- java.util.EventObject
-
- javax.swing.event.TreeModelEvent
- Все реализованные интерфейсы:
Serializable
public class TreeModelEvent extends EventObject
Содержит информацию о изменениях в модели дерева и используется для уведомления слушателей модели дерева об изменениях. Дополнительную информацию и примеры см. в Как написать слушателя модели дерева, разделе учебника Java.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, добавлена поддержка долгосрочного хранения всех JavaBeans™ в пакете java.beans. Пожалуйста, ознакомьтесь с XMLEncoder.
- См. также:
- Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected int[] | childIndices | Индексы, определяющие положение, где были добавлены дети. |
protected Object[] | children | Дети, которые были удалены. |
protected TreePath | path | Путь к родительскому узлу, чьи узлы изменились. |
Поля, объявленные в классе java.util.EventObject
source Конструкторы
| Конструктор | Описание |
|---|---|
TreeModelEvent(Object source,
Object[] path) | Используется для создания события, когда структура узла изменилась каким-либо образом, определяя путь к корню изменённого поддерева как массив объектов. |
TreeModelEvent(Object source,
Object[] path,
int[] childIndices,
Object[] children) | Используется для создания события, когда узлы были изменены, вставлены или удалены, определяя путь к родителю изменённых элементов как массив объектов. |
TreeModelEvent(Object source,
TreePath path) | Используется для создания события, когда структура узла изменилась каким-либо образом, определяя путь к корню изменённого поддерева как объект TreePath. |
TreeModelEvent(Object source,
TreePath path,
int[] childIndices,
Object[] children) | Используется для создания события, когда узлы были изменены, вставлены или удалены, определяя путь к родителю изменённых элементов как объект TreePath. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
int[] | getChildIndices() | Возвращает значения индексов дочерних элементов. |
Object[] | getChildren() | Возвращает объекты, которые являются дочерними элементами узла, определённого |
Object[] | getPath() | Метод-утилита для получения массива объектов из объекта TreePath, который обертывает это событие. |
TreePath | getTreePath() | Для всех событий, кроме treeStructureChanged, возвращает родителя изменённых узлов. |
String | toString() | Возвращает строку, отображающую и идентифицирующую свойства этого объекта. |
Методы, объявленные в классе java.util.EventObject
getSource Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Поля
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- массив объектов, содержащий добавленные, удалённые или изменённые объекты - См. также:
TreePath
TreeModelEvent
public TreeModelEvent(Object source,
TreePath path,
int[] childIndices,
Object[] children) Используется для создания события, когда узлы были изменены, добавлены или удалены, определяя путь к родительскому узлу изменённых элементов как объект TreePath. Более подробная информация о том, как указать индексы и объекты, приведена в TreeModelEvent(Object,Object[],int[],Object[]).
- Параметры:
-
source- объект, ответственный за генерацию события (обычно создатель объекта события передаётthisдля его значения) -
path- объект TreePath, определяющий путь к родительскому узлу изменённых элемента(ов) -
childIndices- массивint, определяющий индексы изменённых элементов -
children- массив объектов, содержащий добавленные, удалённые или изменённые объекты - См. также:
TreeModelEvent(Object,Object[],int[],Object[])
TreeModelEvent
public TreeModelEvent(Object source,
Object[] path) Используется для создания события, когда структура узлов каким-то образом изменилась, определяя путь к корню изменённого поддерева в виде массива объектов. Событие изменения структуры может включать, например, перестановку узлов или может содержать несколько вставок и удалений в поддереве, начинающемся с узла, где изменения могли произойти на разных уровнях поддерева.
Примечание:
JTree сворачивает все узлы под указанным узлом, так что видны только его непосредственные дочерние узлы.
- Параметры:
-
source- объект, ответственный за генерацию события (обычно создатель объекта события передаётthisдля его значения) -
path- массив объектов, определяющий путь к корню изменённого поддерева, где первый элемент массива — объект, хранящийся в корневом узле, а последний — объект, хранящийся в изменённом узле - См. также:
TreePath
TreeModelEvent
public TreeModelEvent(Object source,
TreePath path) Используется для создания события, когда структура узлов каким-то образом изменилась, определяя путь к корню изменённого поддерева как объект TreePath. Более подробная информация об этом событии приведена в TreeModelEvent(Object,Object[]).
- Параметры:
-
source- объект, ответственный за генерацию события (обычно создатель объекта события передаётthisдля его значения) -
path- объект TreePath, определяющий путь к изменению. В DefaultTreeModel этот объект содержит массив объектов пользовательских данных, но подкласс TreePath может использовать совершенно другой механизм — например, номер идентификатора узла - См. также:
TreeModelEvent(Object,Object[])
Методы
getTreePath
public TreePath getTreePath()
Для всех событий, кроме treeStructureChanged, возвращает родительский узел изменённых узлов. Для событий treeStructureChanged возвращает предка изменённой структуры. Эти методы (и getChildIndices) используются для получения списка затронутых узлов.
Исключением является событие treeNodesChanged, предназначенное для идентификации корня, в этом случае оно возвращает корень, а getChildIndices возвращает null.
- Возвращает:
- объект TreePath, используемый для идентификации изменённых узлов.
- См. также:
TreePath.getLastPathComponent()
getPath
public Object[] getPath()
Метод для получения массива объектов из экземпляра TreePath, который это событие оборачивает.
- Возвращает:
- массив объектов, где первый объект — тот, что хранится в корневом узле, а последний — тот, который хранится в узле, определённом путём
getChildren
public Object[] getChildren()
Возвращает объекты, которые являются потомками узла, идентифицированного по getPath в позициях, указанных getChildIndices. Если это событие удаления, возвращаемые объекты больше не являются потомками родительского узла.
- Возвращает:
- массив объектов, содержащих дочерние узлы, указанные в событии
- См. также:
-
getPath(),getChildIndices()
getChildIndices
public int[] getChildIndices()
Возвращает значения индексов дочерних узлов. Если это событие удаления, индексы указывают на позиции в исходном списке, где были удалены элементы. Если это вставка, индексы указывают на позиции в конечном списке, где были добавлены элементы. При изменении узлов индексы указывают на позиции изменённых узлов.
- Возвращает:
- массив
int, содержащий позиции индексов дочерних узлов, указанных в событии
toString
public String toString()
Возвращает строку, отображающую и идентифицирующую свойства этого объекта.
- Переопределяет:
-
toStringв классеEventObject - Возвращает:
- строковое представление этого объекта
© 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/event/TreeModelEvent.html