Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
56_Java.pdf
Скачиваний:
210
Добавлен:
18.02.2016
Размер:
2.39 Mб
Скачать

Скачано с сайта http://ivc.clan.su

pcs.removePropertyChangeListener(pcl);

}

3.В метод setter свойства вставить оператор сохранения старого значения свойства (до изменения свойства) и вызов метода firePropertyChange() с нужными параметрами для запуска события

изменения свойства (после изменения свойства): public void setX(int newX)

{

int oldX = x; x = newX;

pcs.firePropertyChange("X", new Integer(oldX), new Integer(x));

}

При выполнении метода firePropertyChange() создается объект события типа PropertyChangeEvent и передается в качестве параметра вызываемому методу propertyChange() зарегистрированного блока прослушивания. В этом методе можно воспользоваться информацией из объекта события об источнике события, имени свойства, старом и новом значениях.

Ограниченные свойства

Bean-компонент, имеющий ограниченное свойство, генерирует событие PropertyChangeEvent при попытке изменения свойства.

Приемник события (предварительно зарегистрированный блок прослушивания) может запретить изменение, выбросив исключение PropertyVetoException.

Таким образом, ограниченное свойство поддерживает механизм ограничения возможных изменений конкретной областью допустимых значений. Это позволяет Веаn-компонентам работать поразному в разных приложениях.

Классы и интерфейсы пакета java.beans, которые обеспечивают возможность создания ограниченных свойств у Bean-компонентов:

Класс PropertyChangeEvent — класс события изменения свойства.

Интерфейс VetoableChangeListener — интерфейс блока прослушивания события запрещаемого изменения свойства. Содержит объявление метода, который должен быть реализован блоком

прослушивания и вызывается при изменении ограниченного свойства: public void vetoableChange(PropertyChangeEvent pce)

throws PropertyVetoException

Класс VetoableChangeSupport — класс, используемый Bean-компонентами, поддерживающими ограниченные свойства.

Сцелью обеспечения управления списком зарегистрированных блоков прослушивания и уведомления блоков прослушивания о событии запрещаемого изменения свойства класс имеет методы для регистрации блоков прослушивания (приёмников события изменения свойства), отмены регистрации и для запуска события изменения свойства, которое предназначено зарегистрированным

(добавленным в список) блокам прослушивания:

public void addVetoableChangeListener(VetoableChangeListener vcl); public void removeVetoableChangeListener(VetoableChangeListener vcl); public void fireVetoableChange(String propertyName, Object oldValue,

Object new Value).

Класс PropertyVetoException — класс исключения.

Преобразование обычного свойства в ограниченное

Способы преобразования свойства в ограниченное и связанное очень похожи. Однако, при создании ограниченного свойства необходимо в set-методе запускать событие изменения свойства

39

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]