Download the JDK
Search the Tutorials
Hide the TOC
Trail: JavaBeans(TM)
Lesson: Properties
Properties
Simple Properties
Bound Properties
Constrained Properties
Indexed Properties
Home Page > JavaBeans(TM) > Properties
Simple Properties

> To add simple properties to a bean, add appropriate `getXXX` and `setXXX` methods (or `isXXX` and `setXXX` methods for a boolean property).

> The names of these methods follow specific rules called design patterns. These design pattern-based method names allow builder tools such as the NetBeans GUI Builder, to provide the following features:

> - Discover a bean's properties
> - Determine the properties' read/write attributes
> - Determine the properties' types
> - Locate the appropriate property editor for each property type
> - Display the properties (usually in the Properties window)
> - Alter the properties (at design time)

### Adding a Title Property

> In previous lessons you learned how to create a simple property by using the NetBeans GUI Builder. The following procedure shows how to create a simple property in detail:

> 1. Right-click on the Bean Patterns node in the `MyBean` class hierarchy.
> 2. Select Add|Property from the pop-up menu.
> 3. Fill out the New Property Pattern form as shown in the following figure and click OK.

> 4. The following code is automatically generated:

>        public class MyBean {

>            /** Creates a new instance of MyBean */
>            public MyBean() {
>            }

>            /**
>             * Holds value of property title.
>             */
>            private String title;

>            /**
>             * Getter for property title.
>             * @return Value of property title.
>             */
>            public String getTitle() {
>                return this.title;
>            }

>            /**
>             * Setter for property title.
>             * @param title New value of property title.
>             */
>            public void setTitle(String title) {
>                this.title = title;
>            }

>        }

> 5. Now make your bean visual by extending the `JComponent` class and implement the `Serializable` interface. Then, add the `paintComponent` method to represent your bean.

>        import java.awt.Graphics;
>        import java.io.Serializable;
>        import javax.swing.JComponent;

>        /**
>         * Bean with a simple property "title".
>         */
>        public class MyBean
>                extends JComponent
>                implements Serializable
>        {
>            private String title;

>            public String getTitle()
>            {
>                return this.title;
>            }

>            public void setTitle( String title )
>            {
>                this.title = title;
>            }

>            protected void paintComponent( Graphics g )
>            {
>                g.setColor( getForeground() );

>                int height = g.getFontMetrics().getHeight();
>                if ( this.title != null )
>                    g.drawString(this.title, 0, height );
>               }
>           }

### Inspecting Properties

> Select the MyBean component in the Other Components node in the Inspector window. Now you can analyze the title property in the Properties window and change it. To change the title property press the "..." button and enter any string you wish.

> The following figure represents the title property set to the "The title" value.

> The NetBeans GUI Builder enables you to restrict the changing of a property value. To restrict the changing of the title property, right-click the title property in the Bean Patterns node of the MyBean project. Select Properties from the pop-up menu and the Properties window appears. Choose one of the following property access types from the Mode combo box:

> - Read/Write
> - Read only
> - Write only

> The Read only property has only the `get` method only, while the Write only property has only the `set` method only. The Read/Write type property has both of these methods.

Previous page: Properties
Next page: Bound Properties