Класс EventListenerList
- Все реализованные интерфейсы:
Serializable
public class EventListenerList extends Object implements Serializable
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 — подходящим именем метода. Для каждого метода уведомления в интерфейсе FooListener должен существовать отдельный метод отправки события. Предупреждение: сериализованные объекты этого класса будут несовместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4 в пакет java.beans добавлена поддержка долговременного хранения всех JavaBeans. См. XMLEncoder.
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected Object[] |
listenerList |
Список пар «тип слушателя — слушатель» |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
EventListenerList() |
Создаёт EventListenerList. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
<T extends EventListener> |
add |
Добавляет слушателя в качестве слушателя указанного типа. |
int |
getListenerCount() |
Возвращает общее количество слушателей в этом списке слушателей. |
int |
getListenerCount |
Возвращает общее количество слушателей указанного типа в этом списке слушателей. |
Object[] |
getListenerList() |
Возвращает список слушателей событий в виде массива пар «тип слушателя — слушатель». |
<T extends EventListener> |
getListeners |
Возвращает массив всех слушателей указанного типа. |
<T extends EventListener> |
remove |
Удаляет слушателя из числа слушателей указанного типа. |
String |
toString() |
Возвращает строковое представление EventListenerList. |
Подробное описание полей
listenerList
protected transient volatile Object[] listenerList
Подробное описание конструкторов
EventListenerList
public EventListenerList()
EventListenerList.Подробное описание методов
getListenerList
public Object[] getListenerList()
- Возвращает:
- массив пар «тип слушателя — слушатель»
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
© 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/EventListenerList.html