More complex Bean support
You can see how remarkably simple it is to make a Bean, but you arent limited to what youve seen here. The JavaBeans architecture provides a simple point of entry but can also scale to more complex situations. These situations are beyond the scope of this book, but they will be briefly introduced here. You can find more details at java.sun.com/beans.
One place where you can add sophistication is with properties. The examples youve seen here have shown only single properties, but its also possible to represent multiple properties in an array. This is called an indexed property. You simply provide the appropriate methods (again following a naming convention for the method names), and the Introspector recognizes an indexed property so that your application builder tool can respond appropriately.
Properties can be bound, which means that they will notify other objects via a PropertyChangeEvent. The other objects can then choose to change themselves based on the change to the Bean.
Properties can be constrained, which means that other objects can veto a change to that property if it is unacceptable. The other objects are notified by using a PropertyChangeEvent, and they can throw a PropertyVetoException to prevent the change from happening and to restore the old values.
You can also change the way your Bean is represented at design time:
- You can provide a custom property sheet for your particular Bean. The
ordinary property sheet will be used for all other Beans, but yours is
automatically invoked when your Bean is selected.
- You can create a custom editor for a particular property, so the ordinary
property sheet is used, but when your special property is being edited, your
editor will automatically be invoked.
- You can provide a custom BeanInfo class for your Bean that produces
information different from the default created by the Introspector.
Its also possible to turn expert mode on and off in all
FeatureDescriptors to distinguish between basic features and more
More to Beans
There are a number of books about JavaBeans; for example, JavaBeans by Elliotte Rusty Harold (IDG, 1998).