2.3.- Propiedades compartidas y restringidas.
Caso práctico
Juan continúa comentando sus problemas de propiedades a Ada.
-¿Y qué me recomiendas si quiero que me muestren diferentes páginas según el elemento seleccionado? Tengo un componente para el menú y otro para el contenido que se llama panel.
-Puedes usar una propiedad compartida entre ambos que haga que el contenido cambie cuando se modifique el menú.
ObjetEvent) que contiene información acerca de la propiedad (su nombre, el valor previo y el nuevo valor), y lo pasa a los otros objetos oyentes interesados en el cambio. 
La notificación del cambio se realiza a través de la generación de un PropertyChangeEvent. Los objetos que deseen ser notificados del cambio de una propiedad limitada deberán registrarse como auditoresAuditor.Conjunto de objetos que implementan la interfaz PropertyChangeListener. Son objetos que están a la escucha de los cambios que se producen en determinadas propiedades de un componente, y que si implementan el método propertyChange() pueden hacer que se ejecute una acción ante el cambio de la propiedad.. Así, el componente de software que esté implementando la propiedad limitada suministrará métodos de esta forma:
public void addPropertyChangeListener (PropertyChangeListener l)
public void removePropertyChangeListener (PropertyChangeListener l)
Los métodos precedentes del registro de auditores no identifican propiedades limitadas específicas. Para registrar auditores en el PropertyChangeEvent de una propiedad específica, se deben proporcionar los métodos siguientes:
public void addPropertyNameListener (PropertyChangeListener l)
public void removePropertyNameListener (PropertyChangeListener l)
En los métodos precedentes, PropertyName se sustituye por le nombre de la propiedad limitada. Los objetos que implementan la interfaz PropertyChangeListener deben implementar el método propertyChange(). Este método lo invoca el componente de software para todos sus auditores registrados, con el fin de informarles de un cambio de una propiedad.
Los métodos que se utilizan con propiedades simples e indexadas que veíamos anteriormente se aplican también a las propiedades restringidas. Además, se ofrecen los siguientes métodos de registro de eventos:
public void addPropertyVetoableListener (VetoableChangeListener l)
public void removePropertyVetoableListener (VetoableChangeListener l)
public void addPropertyNameListener (VetoableChangeListener l)
public void removePropertyNameListener (VetoableChangeListener l)
Los objetos que implementa la interfaz VetoableChangeListener deben implementar el método vetoableChange(). Este método lo invoca el componente de software para todos sus auditores registrados con el fin de informarles del cambio en una propiedad.
Todo objeto que no apruebe el cambio en una propiedad puede arrojar una PropertyVetoException dentro del método vetoableChange() para informar al componente cuya propiedad restringida hubiera cambiado de que el cambio no se ha aprobado.