В чем разница между PropertyChangeListener и VetoableChangeListener? - PullRequest
7 голосов
/ 11 мая 2010

Все есть в названии вопроса. Можете ли вы предоставить пример использования, в котором мы используем PropertyChangeListener и VetoableChangeListener?

Ответы [ 2 ]

8 голосов
/ 11 мая 2010

Основное отличие заключается в том, что PropertyChangeListener применяются к привязанным свойствам, в то время как VetoableChangeListener применяются к ограниченным свойствам.

связанное свойство - это просто свойство, в то время как ограниченное свойство - это свойство, с помощью которого слушатели могут выразить свое мнение относительно предстоящего изменения: они могут отказать изменить происходящее.

На самом деле происходит то, что когда вы уведомляете об изменении права вето, вы делаете что-то вроде

VetoableChangeSupport vcs;
vcs.fireVetoableChange(...);

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

1 голос
/ 11 мая 2010

Прослушивающий вето слушатель может изменить (запретить) изменение свойства Откат будет выполнен, если получатель пожелает. Вы также можете прикрепить ограничения к измененному свойству. http://java.sun.com/j2se/1.4.2/docs/api/java/beans/VetoableChangeListener.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...