Para obtener el mejor resultado de esta sección, deberías leer primero los capítulos 7 y 8, de la Especificación del API JavaBean.
Si creamos una clase Bean, le damos una variable de ejemplar llamada color, y accedemos a color a través de un método obtnedor llamado getColor y un método seleccionador llamado setColor, entonces hemos creado una propiedad.
Las propiedades son aspectos de la apariencia o comportamiento de un Bean que pueden ser modificados en el momento del diseño.
Los nombres de los métodos para obtener o seleccionar propiedades deben seguir unas reglas específicas, llamadas patrones de diseño. Utilizando estos nombres de métodos basados en patrones de diseño, las herramientas compatibles con JavaBeans (y el BeanBox) pueden:
Por ejemplo, una herramienta de construcciónm cuando introspeccione nuestro Bean, descubrirá dos métodos:
public Color getColor() { ... }
public void setColor(Color c) { ... }
A partir de esto la herramienta puede asegurar que existe una propiedad llamada color, que se puede leer y reescribir, y que su tipo es Color. Además, la herramienta puede intentar localizar un editor de propiedad para ese tipo, y mostrar la propiedad para que pueda ser editada.
private Color color = Color.green;
public Color getColor(){
return color;
}
public void setColor(Color newColor){
color = newColor;
repaint();
}
public void paint(Graphics g) {
g.setColor(color);
g.fillRect(20, 5, 20, 30);
}
Los resultados son:
Aquí tienes una ilustración del BeanBox que muestra el ejemplar revisado de SimpleBean dentro del BeanBox, la nueva propiedad color en la hoja de propiedades de SimpleBean y un editor de la propiedad color. Recuerda, pulsando sobre la propiedad color en la hoja de propiedades se lanzará este editor.
Aquí tenemos el código fuente completo de SimpleBean revisado para la propiedad color.
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);
}
}