Класс PropertyChangeSupport
- Все реализуемые интерфейсы:
Serializable
- Прямые известные подклассы:
SwingPropertyChangeSupport
public class PropertyChangeSupport extends Object implements Serializable
PropertyChangeEvent. Экземпляр этого класса можно использовать как поле-член bean-компонента и делегировать ему выполнение такой работы. 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 для определённого свойства. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
PropertyChangeSupport
public PropertyChangeSupport(Object sourceBean)
PropertyChangeSupport.- Параметры:
-
sourceBean— bean-компонент, который будет указан в качестве источника всех событий.
Подробное описание методов
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.