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