Класс TreeModelEvent
- Все реализуемые интерфейсы:
Serializable
public class TreeModelEvent extends EventObject
Предупреждение: сериализованные объекты этого класса могут быть несовместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4 в пакете java.beans добавлена поддержка долговременного хранения всех JavaBeans. См. XMLEncoder.
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected int[] |
childIndices |
Индексы, указывающие позиции дочерних элементов. |
protected Object[] |
children |
Удалённые дочерние элементы. |
protected TreePath |
path |
Путь к родительскому элементу изменённых узлов. |
Поля, объявленные в классе EventObject
source
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
TreeModelEvent |
Создаёт событие при изменении структуры узлов; путь к корню изменённого поддерева задаётся массивом объектов. |
TreeModelEvent |
Создаёт событие при изменении, вставке или удалении узлов; путь к родительскому элементу изменённых объектов задаётся массивом объектов. |
TreeModelEvent |
Создаёт событие при изменении структуры узлов; путь к корню изменённого поддерева задаётся объектом TreePath. |
TreeModelEvent |
Создаёт событие при изменении, вставке или удалении узлов; путь к родительскому элементу изменённых объектов задаётся объектом TreePath. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int[] |
getChildIndices() |
Возвращает значения индексов дочерних элементов. |
Object[] |
getChildren() |
Возвращает объекты, являющиеся дочерними элементами узла, указанного в getPath, в позициях, заданных в getChildIndices. |
Object[] |
getPath() |
Вспомогательный метод для получения массива объектов из экземпляра TreePath, обёрнутого этим событием. |
TreePath |
getTreePath() |
Для всех событий, кроме treeStructureChanged, возвращает родительский элемент изменённых узлов. |
String |
toString() |
Возвращает строку, отображающую и описывающую свойства этого объекта. |
Методы, объявленные в классе 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. Индексы в этом массиве должны быть упорядочены по возрастанию. При изменениях индексы в модели в точности соответствуют индексам элементов, отображаемых в пользовательском интерфейсе в данный момент. Поэтому точный порядок индексов не имеет особого значения. Однако после нескольких вставок или удалений отображаемые элементы перестают соответствовать элементам модели. Поэтому для вставок и удалений крайне важно правильно указать индексы.
Для вставок индексы представляют итоговое состояние дерева после выполнения вставок. Поскольку индексы должны быть упорядочены, наиболее естественный способ обработки — выполнять вставки от наименьшего индекса к наибольшему. По мере выполнения операций накапливайте Vector объектов Integer, указывающих позиции вставки, а затем преобразуйте Vector в массив int для создания события. Если индекс позиции равен нулю, узел вставляется в начало списка. Если индекс позиции равен размеру списка, узел «вставляется» (добавляется) в конец списка.
Для удалений индексы представляют исходное состояние дерева до выполнения удалений. Поскольку индексы должны быть упорядочены, наиболее естественный способ обработки — использовать счётчик удалений. Инициализируйте счётчик нулём и проходите список от наименьшего индекса к наибольшему. При каждом удалении прибавляйте текущее значение счётчика удалений к позиции индекса, в которой произошло удаление, и добавляйте результат в Vector позиций удалений с помощью addElement(). Затем увеличивайте счётчик удалений. Таким образом, позиции индексов, сохранённые в Vector, учитывают все предыдущие удаления и отражают позицию каждого объекта в исходном дереве. (Можно также начать с наибольшего индекса и двигаться к наименьшему, накапливая Vector позиций удалений с помощью insertElementAt(Integer, 0).) Независимо от способа формирования Vector исходных позиций, затем необходимо преобразовать Vector объектов 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()
- Переопределяет:
-
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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/event/TreeModelEvent.html