Класс VetoableChangeSupport
- Все реализованные интерфейсы:
Serializable
public class VetoableChangeSupport extends Object implements Serializable
PropertyChangeEvent этим слушателям. Вы можете использовать экземпляр этого класса в качестве поля вашего компонента и делегировать такие операции ему. Слушатели типа 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 |
Сообщает слушателям об обновлении булевого свойства с ограничениями, зарегистрированным для отслеживания изменений всех свойств или свойства с указанным именем. |
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, 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/VetoableChangeSupport.html