Spec-Zone.ru › OpenJDK 24

Класс EventListenerList

java.lang.Object
javax.swing.event.EventListenerList
Все реализованные интерфейсы:
Serializable
public class EventListenerList extends Object implements Serializable
Класс, содержащий список EventListeners. Единый экземпляр может использоваться для хранения всех слушателей (всех типов) для экземпляра, использующего список. Ответственность за предоставление безопасной по типу API (предпочтительно в соответствии со спецификацией JavaBeans) и методов, которые рассылают методы уведомления об событиях соответствующим Event Listeners в списке, лежит на классе, использующем EventListenerList. Основные преимущества этого класса заключаются в том, что он относительно дешёвый в случае отсутствия слушателей, и он обеспечивает сериализацию для списков слушателей событий в одном месте, а также некоторую безопасность в многопоточной среде (при правильном использовании). Пример использования: Предположим, что определён класс, который отправляет FooEvents, и необходимо разрешить пользователям класса регистрировать FooListeners и получать уведомления при возникновении FooEvents. Следующее должно быть добавлено к определению класса:
 EventListenerList listenerList = new EventListenerList();
 FooEvent fooEvent = null;

 public void addFooListener(FooListener l) {
     listenerList.add(FooListener.class, l);
 }

 public void removeFooListener(FooListener l) {
     listenerList.remove(FooListener.class, l);
 }


 // Notify all listeners that have registered interest for
 // notification on this event type.  The event instance
 // is lazily created using the parameters passed into
 // the fire method.

 protected void fireFooXXX() {
     // Guaranteed to return a non-null array
     Object[] listeners = listenerList.getListenerList();
     // Process the listeners last to first, notifying
     // those that are interested in this event
     for (int i = listeners.length-2; i>=0; i-=2) {
         if (listeners[i]==FooListener.class) {
             // Lazily create the event:
             if (fooEvent == null)
                 fooEvent = new FooEvent(this);
             ((FooListener)listeners[i+1]).fooXXX(fooEvent);
         }
     }
 }
 
foo должен быть изменён на соответствующее имя, а fireFooXxx — на соответствующее имя метода. Один метод fire должен существовать для каждого метода уведомления в интерфейсе FooListener.

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

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

Модификатор и тип Поле Описание
protected Object[] listenerList
Список пар ListenerType - Listener

Краткое описание конструкторов

Конструктор Описание
EventListenerList()
Конструирует EventListenerList.

Краткое описание методов

Модификатор и тип Метод Описание
<T extends EventListener>
void
add(Class<T> t, T l)
Добавляет слушателя как слушателя указанного типа.
int getListenerCount()
Возвращает общее количество слушателей для этого списка слушателей.
int getListenerCount(Class<?> t)
Возвращает общее количество слушателей указанного типа для этого списка слушателей.
Object[] getListenerList()
Возвращает список слушателей событий в виде массива пар ListenerType-listener.
<T extends EventListener>
T[]
getListeners(Class<T> t)
Возвращает массив всех слушателей заданного типа.
<T extends EventListener>
void
remove(Class<T> t, T l)
Удаляет слушателя как слушателя указанного типа.
String toString()
Возвращает строковое представление EventListenerList.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

listenerList

protected transient volatile Object[] listenerList
Список пар ListenerType - Listener

Подробное описание конструкторов

EventListenerList

public EventListenerList()
Конструирует EventListenerList.

Подробное описание методов

getListenerList

public Object[] getListenerList()
Возвращает список слушателей событий в виде массива пар ListenerType-listener. Обратите внимание, что по соображениям производительности данная реализация возвращает фактическую структуру данных, в которой хранятся данные слушателей внутри! Этот метод гарантирует возврат непустого массива, чтобы не требовалось проверка на null в методах fire. Возвращается массив нулевой длины Object, если в настоящее время нет слушателей. ПРЕДУПРЕЖДЕНИЕ!!! Абсолютно никакие изменения в данных, содержащихся в этом массиве, не должны выполняться — если такие манипуляции необходимы, они должны выполняться над копией возвращенного массива, а не над самим массивом.
Возвращает:
массив пар ListenerType-listener

getListeners

public <T extends EventListener> T[] getListeners(Class<T> t)
Возвращает массив всех слушателей заданного типа.
Параметры типа:
T — тип EventListener для поиска
Параметры:
t — тип классов EventListener, которые должны быть возвращены
Возвращает:
все слушатели указанного типа.
Исключения:
ClassCastException — если предоставленный класс не может быть приведён к типу EventListener
С момента:
1.3

getListenerCount

public int getListenerCount()
Возвращает общее количество слушателей для этого списка слушателей.
Возвращает:
целое значение, количество слушателей

getListenerCount

public int getListenerCount(Class<?> t)
Возвращает общее количество слушателей указанного типа для этого списка слушателей.
Параметры:
t — тип слушателей для подсчёта
Возвращает:
количество слушателей типа t

add

public <T extends EventListener> void add(Class<T> t, T l)
Добавляет слушателя как слушателя указанного типа.
Параметры типа:
T — тип EventListener для добавления
Параметры:
t — тип класса EventListener для добавления
l — слушатель для добавления

remove

public <T extends EventListener> void remove(Class<T> t, T l)
Удаляет слушателя как слушателя указанного типа.
Параметры типа:
T — тип EventListener
Параметры:
t — тип слушателя для удаления
l — слушатель для удаления

toString

public String toString()
Возвращает строковое представление EventListenerList.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта

Отправить сообщение об ошибке или предложить улучшение
Для получения дополнительной справки по API и документации для разработчиков см. Java SE Documentation, которая содержит более подробные описания для разработчиков с концептуальными обзорами, определениями терминов, обходными путями и рабочими примерами кода. Другие версии.
Java является торговой маркой или зарегистрированной торговой маркой Oracle и/или её дочерних компаний в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 США.
Все права защищены. Использование подчиняется условиям лицензии и политике перераспределения документации.
ПРОЕКТ 24-ea+36-Debian-1

© 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/EventListenerList.html

Spec-Zone.ru

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