Класс 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.