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