Spec-Zone.ru › OpenJDK 24

Класс PropertyChangeSupport

java.lang.Object
java.beans.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
См. также:
  • VetoableChangeSupport
  • Сериализованная форма

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

Конструктор Описание
PropertyChangeSupport(Object sourceBean)
Создает объект PropertyChangeSupport.

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

Модификатор и тип Метод Описание
void addPropertyChangeListener(PropertyChangeListener listener)
Добавить слушателя PropertyChangeListener в список слушателей.
void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
Добавить слушателя PropertyChangeListener для определенного свойства.
void fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)
Сообщает об обновлении связанного индексированного свойства типа boolean слушателям, которые зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.
void fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)
Сообщает об обновлении связанного индексированного свойства типа integer слушателям, которые зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.
void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
Сообщает об обновлении связанного индексированного свойства слушателям, которые зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.
void firePropertyChange(PropertyChangeEvent event)
Отправляет событие изменения свойства слушателям, которые зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.
void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
Сообщает об обновлении связанного свойства типа boolean слушателям, которые зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.
void firePropertyChange(String propertyName, int oldValue, int newValue)
Сообщает об обновлении связанного свойства типа integer слушателям, которые зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.
void firePropertyChange(String propertyName, Object oldValue, Object newValue)
Сообщает об обновлении связанного свойства слушателям, которые зарегистрированы для отслеживания обновлений всех свойств или свойства с заданным именем.
PropertyChangeListener[] getPropertyChangeListeners()
Возвращает массив всех слушателей, которые были добавлены к объекту PropertyChangeSupport с помощью addPropertyChangeListener().
PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
Возвращает массив всех слушателей, связанных с указанным свойством.
boolean hasListeners(String propertyName)
Проверяет, есть ли слушатели для определенного свойства, включая тех, кто зарегистрирован для всех свойств.
void removePropertyChangeListener(PropertyChangeListener listener)
Удалить слушателя PropertyChangeListener из списка слушателей.
void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
Удалить слушателя PropertyChangeListener для определенного свойства.

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

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

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

PropertyChangeSupport

public PropertyChangeSupport(Object sourceBean)
Создаёт объект PropertyChangeSupport.
Параметры:
sourceBean - Компонент, который будет источником событий.

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

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
Добавляет слушателя PropertyChangeListener в список слушателей. Слушатель регистрируется для всех свойств. Один и тот же объект слушателя может быть добавлен более одного раза, и он будет вызываться столько раз, сколько раз он был добавлен. Если listener равно null, исключение не генерируется, и никаких действий не выполняется.
Параметры:
listener - Добавляемый слушатель PropertyChangeListener

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener listener)
Удаляет слушателя PropertyChangeListener из списка слушателей. Это удаляет слушателя PropertyChangeListener, который был зарегистрирован для всех свойств. Если listener был добавлен более одного раза в тот же источник событий, он будет уведомлён на одну операцию меньше после удаления. Если listener равно null или никогда не добавлялся, исключение не генерируется, и никаких действий не выполняется.
Параметры:
listener - Удаляемый слушатель PropertyChangeListener

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners()
Возвращает массив всех слушателей, которые были добавлены в объект PropertyChangeSupport с помощью addPropertyChangeListener().

Если некоторые слушатели были добавлены со свойством с именем, то возвращаемый массив будет представлять собой смесь PropertyChangeListeners и 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
См. также:
  • PropertyChangeListenerProxy

addPropertyChangeListener

public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
Добавляет слушателя PropertyChangeListener для конкретного свойства. Слушатель будет вызываться только тогда, когда вызов firePropertyChange называет это конкретное свойство. Один и тот же объект слушателя может быть добавлен более одного раза. Для каждого свойства слушатель будет вызываться столько раз, сколько раз он был добавлен для этого свойства. Если propertyName или listener равно null, исключение не генерируется, и никаких действий не выполняется.
Параметры:
propertyName - Имя свойства, за которым нужно следить.
listener - Добавляемый слушатель PropertyChangeListener
С:
1.2

removePropertyChangeListener

public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
Удаляет слушателя PropertyChangeListener для конкретного свойства. Если 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, проверяются только слушатели, зарегистрированные для всех свойств.
Parameters:
propertyName - имя свойства.
Returns:
true, если для данного свойства есть один или несколько слушателей
Since:
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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/beans/PropertyChangeSupport.html

Spec-Zone.ru

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