Spec-Zone.ru › OpenJDK 27

Класс TreeModelEvent

java.lang.Object
java.util.EventObject
javax.swing.event.TreeModelEvent
Все реализуемые интерфейсы:
Serializable
public class TreeModelEvent extends EventObject
Инкапсулирует сведения, описывающие изменения модели дерева, и используется для уведомления слушателей модели дерева об этих изменениях. Дополнительные сведения и примеры см. в разделе Как написать слушатель модели дерева учебного пособия The Java Tutorial.

Предупреждение: сериализованные объекты этого класса будут несовместимы с будущими версиями Swing. Текущая поддержка сериализации предназначена для кратковременного хранения или использования RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4 в пакете java.beans добавлена поддержка долгосрочного хранения всех JavaBeans. См. XMLEncoder.

Краткое описание полей

Модификатор и тип Поле Описание
protected int[] childIndices
Индексы, указывающие позиции, которые занимали дочерние элементы.
protected Object[] children
Удалённые дочерние элементы.
protected TreePath path
Путь к родительскому элементу изменённых узлов.

Поля, объявленные в классе EventObject

source
Модификатор и тип Поле Описание
protected Object 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()
Возвращает объекты, являющиеся дочерними для узла, указанного в getPath, в позициях, заданных в getChildIndices.
Object[] getPath()
Вспомогательный метод для получения массива объектов из экземпляра TreePath, который оборачивает это событие.
TreePath getTreePath()
Для всех событий, кроме treeStructureChanged, возвращает родительский элемент изменённых узлов.
String toString()
Возвращает строку, отображающую и описывающую свойства этого объекта.

Методы, объявленные в классе EventObject

getSource
Модификатор и тип Метод Описание
Object getSource()
Объект, в котором первоначально произошло событие.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API планируется удалить в будущей версии.
Финализация признана устаревшей и будет удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.

Подробное описание полей

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 — массив Object, задающий путь к родительскому элементу изменённого объекта (или объектов); первый элемент массива — объект, хранящийся в корневом узле, а последний — объект, хранящийся в родительском узле
childIndices — массив int, задающий индексы удалённых элементов. Индексы должны быть упорядочены по возрастанию
children — массив Object, содержащий вставленные, удалённые или изменённые объекты
См. также:
  • 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 — массив Object, содержащий вставленные, удалённые или изменённые объекты
См. также:
  • TreeModelEvent(Object,Object[],int[],Object[])

TreeModelEvent

public TreeModelEvent(Object source, Object[] path)
Используется для создания события при изменении структуры узлов; путь к корню изменённого поддерева задаётся в виде массива объектов. Например, событие изменения структуры может означать перестановку узлов или включать несколько вставок и удалений в поддереве, начинающемся от узла, причём изменения могли произойти на разных уровнях поддерева.
Примечание:
JTree сворачивает все узлы под указанным узлом, оставляя видимыми только его непосредственные дочерние узлы.
Параметры:
source — объект, ответственный за создание события (обычно создатель объекта события передаёт this в качестве его значения)
path — массив Object, задающий путь к корню изменённого поддерева; первый элемент массива — объект, хранящийся в корневом узле, а последний — объект, хранящийся в изменённом узле
См. также:
  • 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. Если это событие удаления, возвращённые объекты больше не являются дочерними для родительского узла.
Возвращает:
массив Object, содержащий дочерние элементы, указанные событием
См. также:
  • getPath()
  • getChildIndices()

getChildIndices

public int[] getChildIndices()
Возвращает значения индексов дочерних элементов. Если это событие удаления, индексы указывают на позиции в исходном списке, из которых были удалены элементы. Если это событие вставки, индексы указывают на позиции в итоговом списке, куда были добавлены элементы. Для изменений узлов индексы указывают позиции изменённых узлов.
Возвращает:
массив int, содержащий индексы дочерних элементов, указанных событием

toString

public String toString()
Возвращает строку, отображающую и описывающую свойства этого объекта.
Переопределяет:
toString в классе EventObject
Возвращает:
строковое представление этого объекта

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, обзоры концепций, определения терминов, способы обхода проблем и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её филиалов в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её филиалы, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API