Класс 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, 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/java/beans/PropertyChangeSupport.html