Класс PropertyChangeSupport
- Все реализованные интерфейсы:
Serializable
- Прямые известные подклассы:
SwingPropertyChangeSupport
public class PropertyChangeSupport extends Object implements Serializable
PropertyChangeEvent события им. Вы можете использовать экземпляр этого класса как член поля вашего компонента и делегировать ему обработку этих типов задач. PropertyChangeListener может быть зарегистрирован для всех свойств или для свойства, указанного по имени. Вот пример PropertyChangeSupport использования, который соответствует правилам и рекомендациям, изложенным в спецификации JavaBeans:
public class MyBean {
private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
public void addPropertyChangeListener(PropertyChangeListener listener) {
this.pcs.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
this.pcs.removePropertyChangeListener(listener);
}
private String value;
public String getValue() {
return this.value;
}
public void setValue(String newValue) {
String oldValue = this.value;
this.value = newValue;
this.pcs.firePropertyChange("value", oldValue, newValue);
}
[...]
}
Экземпляр PropertyChangeSupport потокобезопасен.
Этот класс сериализуем. При сериализации он сохранит (и восстановит) всех слушателей, которые сами по себе сериализуемы. Любые несериализуемые слушатели будут пропущены во время сериализации.
- С момента:
- 1.1
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
PropertyChangeSupport |
Создаёт объект PropertyChangeSupport. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addPropertyChangeListener |
Добавляет PropertyChangeListener в список слушателей. |
void |
addPropertyChangeListener |
Добавляет PropertyChangeListener для определенного свойства. |
void |
fireIndexedPropertyChange |
Сообщает слушателям об обновлении индексированного связанного свойства типа boolean, если они были зарегистрированы для отслеживания обновлений всех свойств или свойства с указанным именем. |
void |
fireIndexedPropertyChange |
Сообщает слушателям об обновлении индексированного связанного свойства типа int, если они были зарегистрированы для отслеживания обновлений всех свойств или свойства с указанным именем. |
void |
fireIndexedPropertyChange |
Сообщает слушателям об обновлении индексированного связанного свойства, если они были зарегистрированы для отслеживания обновлений всех свойств или свойства с указанным именем. |
void |
firePropertyChange |
Отправляет событие изменения свойства слушателям, которые были зарегистрированы для отслеживания обновлений всех свойств или свойства с указанным именем. |
void |
firePropertyChange |
Сообщает слушателям об обновлении связанного свойства типа boolean, если они были зарегистрированы для отслеживания обновлений всех свойств или свойства с указанным именем. |
void |
firePropertyChange |
Сообщает слушателям об обновлении связанного свойства типа int, если они были зарегистрированы для отслеживания обновлений всех свойств или свойства с указанным именем. |
void |
firePropertyChange |
Сообщает слушателям об обновлении связанного свойства, если они были зарегистрированы для отслеживания обновлений всех свойств или свойства с указанным именем. |
PropertyChangeListener[] |
getPropertyChangeListeners() |
Возвращает массив всех слушателей, которые были добавлены в объект PropertyChangeSupport с помощью addPropertyChangeListener(). |
PropertyChangeListener[] |
getPropertyChangeListeners |
Возвращает массив всех слушателей, связанных с указанным именем свойства. |
boolean |
hasListeners |
Проверяет, есть ли слушатели для определенного свойства, включая тех, кто зарегистрирован для всех свойств. |
void |
removePropertyChangeListener |
Удаляет PropertyChangeListener из списка слушателей. |
void |
removePropertyChangeListener |
Удаляет PropertyChangeListener для определенного свойства. |
Подробное описание конструкторов
PropertyChangeSupport
public PropertyChangeSupport(Object sourceBean)
PropertyChangeSupport. - Параметры:
-
sourceBean- Компонент, который будет источником событий.
Подробное описание методов
addPropertyChangeListener
public void addPropertyChangeListener(PropertyChangeListener listener)
listener равен null, исключение не выбрасывается, и никаких действий не выполняется.- Параметры:
-
listener- Добавляемый обработчик PropertyChangeListener
removePropertyChangeListener
public void removePropertyChangeListener(PropertyChangeListener listener)
listener был добавлен более одного раза к одному и тому же источнику событий, он будет оповещён на одну операцию вызова меньше после удаления. Если listener равен null или никогда не добавлялся, исключение не выбрасывается, и никаких действий не выполняется.- Параметры:
-
listener- Удаляемый обработчик PropertyChangeListener
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners()
Если некоторые слушатели были добавлены с указанным именем свойства, то возвращаемый массив будет содержать смесь обработчиков PropertyChangeListener и PropertyChangeListenerProxy. Если вызывающий метод заинтересован в различении слушателей, он должен проверить каждый элемент, чтобы увидеть, является ли он PropertyChangeListenerProxy, выполнить приведение типов и изучить параметр.
PropertyChangeListener[] listeners = bean.getPropertyChangeListeners();
for (int i = 0; i < listeners.length; i++) {
if (listeners[i] instanceof PropertyChangeListenerProxy) {
PropertyChangeListenerProxy proxy =
(PropertyChangeListenerProxy)listeners[i];
if (proxy.getPropertyName().equals("foo")) {
// proxy is a PropertyChangeListener which was associated
// with the property named "foo"
}
}
}
- Возвращает:
- все добавленные
PropertyChangeListenersили пустой массив, если слушатели не были добавлены - С:
- 1.4
- См. также:
addPropertyChangeListener
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
propertyName или listener равны null, исключение не выбрасывается, и никаких действий не выполняется.- Параметры:
-
propertyName- Имя свойства, за которым нужно следить. -
listener- Добавляемый обработчик PropertyChangeListener - С:
- 1.2
removePropertyChangeListener
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
listener был добавлен более одного раза к одному и тому же источнику событий для указанного свойства, он будет оповещён на одну операцию вызова меньше после удаления. Если propertyName равен null, исключение не выбрасывается, и никаких действий не выполняется. Если listener равен null или никогда не добавлялся для указанного свойства, исключение не выбрасывается, и никаких действий не выполняется.- Параметры:
-
propertyName- Имя свойства, за которым следили. -
listener- Удаляемый обработчик PropertyChangeListener - С:
- 1.2
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
- Параметры:
-
propertyName- Имя отслеживаемого свойства - Возвращает:
- все
PropertyChangeListenersсвязанные с указанным свойством. Если такие слушатели не были добавлены, или еслиpropertyNameравен null, возвращается пустой массив. - С:
- 1.4
firePropertyChange
public void firePropertyChange(String propertyName, Object oldValue, Object newValue)
Событие не генерируется, если старое и новое значения равны и не равны null.
Это просто удобная обертка над более общей firePropertyChange(PropertyChangeEvent) методом.
- Параметры:
-
propertyName- Программное имя изменённого свойства -
oldValue- Старое значение свойства -
newValue- Новое значение свойства
firePropertyChange
public void firePropertyChange(String propertyName, int oldValue, int newValue)
Событие не генерируется, если старое и новое значения равны.
Это просто удобная обертка над более общей firePropertyChange(String, Object, Object) методом.
- Параметры:
-
propertyName- Программное имя изменённого свойства -
oldValue- Старое значение свойства -
newValue- Новое значение свойства - С:
- 1.2
firePropertyChange
public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
Событие не генерируется, если старое и новое значения равны.
Это просто удобная обертка над более общей firePropertyChange(String, Object, Object) методом.
- Параметры:
-
propertyName- Программное имя изменённого свойства -
oldValue- Старое значение свойства -
newValue- Новое значение свойства - С:
- 1.2
firePropertyChange
public void firePropertyChange(PropertyChangeEvent event)
Событие не отправляется, если старое и новое значения данного события равны и не равны null.
- Параметры:
-
event- ОтправляемоеPropertyChangeEventсобытие - С:
- 1.2
fireIndexedPropertyChange
public void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
Событие не генерируется, если старое и новое значения равны и не равны null.
Это просто удобная обертка над более общей firePropertyChange(PropertyChangeEvent) методом.
- Параметры:
-
propertyName- Программное имя изменённого свойства -
index- Индекс элемента свойства, который был изменён -
oldValue- Старое значение свойства -
newValue- Новое значение свойства - С:
- 1.5
fireIndexedPropertyChange
public void fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)
Событие не генерируется, если старое и новое значения равны.
Это просто удобная обертка над более общей fireIndexedPropertyChange(String, int, Object, Object) методом.
- Параметры:
-
propertyName- Программное имя изменённого свойства -
index- Индекс элемента свойства, который был изменён -
oldValue- Старое значение свойства -
newValue- Новое значение свойства - С:
- 1.5
fireIndexedPropertyChange
public void fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)
Событие не генерируется, если старое и новое значения равны.
Это просто удобная обертка над более общей fireIndexedPropertyChange(String, int, Object, Object) методом.
- Параметры:
-
propertyName- Программное имя изменённого свойства -
index- Индекс элемента свойства, который был изменён -
oldValue- Старое значение свойства -
newValue- Новое значение свойства - С:
- 1.5
hasListeners
public boolean hasListeners(String propertyName)
propertyName равно null, проверяются только слушатели, зарегистрированные для всех свойств.- Параметры:
-
propertyName- Имя свойства. - Возвращает:
- true, если есть один или несколько слушателей для данного свойства
- С:
- 1.2
© 1993, 2021, 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/17/docs/api/java.desktop/java/beans/PropertyChangeSupport.html