Previous | Next | Trail Map | JavaBeans Tutorial | Writing a Simple Bean


Implementing Properties


To get the most out of this section, first read Chapters 7, Properties, and Chapter 8, Introspection, of the JavaBeans API Specification.

If you create a Bean class, give it an instance variable named color, and access color through a getter method named getColor and a setter method named setColor, then you have created a property.

Properties are aspects of a Bean's appearance and behavior that are changeable at design time.

JavaBean properties follow specific rules, called design patterns, when naming getter and setter method names. This lets JavaBeans-enabled builder tools (and the BeanBox) discover, display (usually in a property sheet), and alter those properties at design time.

For example, a builder tool, in introspecting your Bean, discovers two methods, getColor() and setColor(), infers that a property named color exists, and displays that property in a property sheet where it can be edited.

Adding a Color Property to SimpleBean

Make the following changes to SimpleBean.java to add a color property:

  1. Create and initialize a private instance variable.
       private Color color = Color.green; 
      
  2. Write a getter method.
       public Color getColor(){
         return color;
       } 
      
  3. Write a setter method.
        public void setColor(Color newColor){
         color = newColor;
         repaint();
        }
       
  4. Override the inherited paint() method. This is a requirement for all subclasses of Canvas.
        public void paint(Graphics g) {
         g.setColor(color);
         g.fillRect(20, 5, 20, 30);
        }
       
  5. Compile the Bean, load it in the ToolBox, and create an instance in the BeanBox.

The results are:

Here is a BeanBox illustration showing the revised SimpleBean instance within the BeanBox, SimpleBean's new color property within the Properties sheet, and the Color property editor shipped with the BeanBox. Remember, clicking on the color property entry in the Properties sheet displays this editor.

You can change the color property by menu, or by RGB value. Try changing colors.

Here is the complete SimpleBean source code, revised to add a color property.

package sunw.demo.simple;
 
import java.awt.*;
import java.io.Serializable;
 
public class SimpleBean extends Canvas
                     implements Serializable{
 
  private Color color = Color.green;
 
  //property getter method
  public Color getColor(){
     return color;
  }
 
  //property setter method. Sets new SimpleBean
  //color and repaints.
  public void setColor(Color newColor){
     color = newColor;
     repaint();
  }
 
  public void paint(Graphics g) {
   g.setColor(color);
   g.fillRect(20, 5, 20, 30);
  }
 
  //Constructor sets inherited properties
  public SimpleBean(){
   setSize(60,40);
   setBackground(Color.red);
  }
}

You can learn how to implement bound, constrained, and indexed properties in the advanced Beans section of this document.

In the next lesson, you'll learn about events, and how to manipulate them in the BeanBox.


Previous | Next | Trail Map | JavaBeans Tutorial | Writing a Simple Bean