A source Bean sends or fires events and a listener Bean, after it registers its interest in the event with the source Bean, receives or handles events. A bound property gives a JavaBean the capability of notifying another JavaBean when there is a change to the value of that property. The JavaBean that is notified can then react to the change. For example, you might have a button in one JavaBean that, when pressed, causes another Bean to display some information. Because other Beans are notified when there is a change to a Bean's bound property, there has to be a means for Beans to communicate.
Beans communicate using events.
A change to a bound property causes an event to be fired. These events are referred to as property change events. When you set up a bound property, you also set up other Beans as interested listeners to changes in the bound property. Then, whenever the value of the bound property of the first JavaBean changes, notification is sent to those Beans that have registered as interested listeners. Let's look at the Bean MyButton.java first, which uses bound properties.