Класс 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 |
Сообщает об изменении ограниченного свойства типа integer слушателям, зарегистрированным для отслеживания изменений всех свойств или свойства с указанным именем. |
void |
fireVetoableChange |
Сообщает об изменении ограниченного свойства слушателям, зарегистрированным для отслеживания изменений всех свойств или свойства с указанным именем. |
VetoableChangeListener[] |
getVetoableChangeListeners() |
Возвращает массив всех слушателей, добавленных в объект VetoableChangeSupport с помощью addVetoableChangeListener(). |
VetoableChangeListener[] |
getVetoableChangeListeners |
Возвращает массив всех слушателей, связанных с именованным свойством. |
boolean |
hasListeners |
Проверяет, есть ли слушатели для определенного свойства, включая слушателей, зарегистрированных для всех свойств. |
void |
removeVetoableChangeListener |
Удаляет VetoableChangeListener из списка слушателей. |
void |
removeVetoableChangeListener |
Удаляет VetoableChangeListener для определенного свойства. |
Подробное описание конструкторов
VetoableChangeSupport
public VetoableChangeSupport(Object sourceBean)
VetoableChangeSupport.- Параметры:
-
sourceBean— компонент bean, который будет указан в качестве источника всех событий.
Подробное описание методов
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()
Если некоторые слушатели были добавлены для именованного свойства, возвращенный массив будет содержать смесь VetoableChangeListener и 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/beans/VetoableChangeSupport.html