Saltar la navegación

3.- Editores de propiedades.

Caso práctico

Imagen que muestra a un hombre de perfil escribiendo en el teclado de un ordenador.

Ada explica a María y Juan cómo modificar las propiedades:

-Puedes cambiar las propiedades de un componente para modificar su aspecto o su estado interno. Por ejemplo, si añades un botón a un formulario, sus propiedades serán el color de fondo, la fuente, y el texto que aparece en el botón.

Cuando necesitamos editar estas propiedades podemos hacerlo escribiendo los valores directamente o desplegando un diálogo que permita editar el valor en el inspector de propiedades.

Una de las principales características de un componente es que una vez instalado en un entorno de desarrollo, éste debe ser capaz de identificar sus propiedades simplemente detectando parejas de operaciones get/ set, mediante la capacidad denominada introspección.

El entorno de desarrollo podrá editar automáticamente cualquier propiedad de los tipos básicos o de las clases Color y Font. Aunque no podrá hacerlo si el tipo de datos de la propiedad es algo más complejo, por ejemplo, si usamos otra clase, como Cliente. Para poder hacerlo tendremos que crear nuestro propio editor de propiedades.

Un editor de propiedad es una herramienta para personalizar un tipo de propiedad en particular. Los editores de propiedades se utilizan en la ventana Propiedades, que es donde se determina el tipo de la propiedad, se busca de un editor de propiedades apropiado, y se muestra el valor actual de la propiedad de una manera apropiada.

En la imagen se ve un rectángulo que representa una hoja de papel sobre la que puede verse la letra A de color azul.
En la imagen se ve dos figuras icónicas que representan un tubo de pintura y un pincel.

La creación de un editor de propiedades usando tecnología Java supone programar una clase que implemente la interfaz PropertyEditor, que proporciona métodos para especificar cómo se debe mostrar una propiedad en la hoja de propiedades. Su nombre debe ser el nombre de la propiedad seguido de la palabra Editor:

public Editor implements PropertyEditor {…}

Por defecto la clase PropertyEditorSupport que implementa PropertyEditor proporciona los editores más comúnmente empleados, incluyendo los mencionados tipos básicos, Color y Font.

Una vez que tengamos todos los editores, tendremos que empaquetar las clases con el componente para que use el editor que hemos creado cada vez que necesite editar la propiedad. Así, conseguimos que cuando se añada un componente en un panel y lo seleccionemos, aparezca una hoja de propiedades, con la lista de las propiedades del componente y sus editores asociados para cada una de ellas. El IDE llama a los métodos getters, para mostrar en los editores los valores de las propiedades. Si se cambia el valor de una propiedad, se llama al método setter, para actualizar el valor de dicha propiedad, lo que puede o no afectar al aspecto visual del componente en el momento del diseño.

Autoevaluación

Pregunta

Imagina que estamos creando un componente para añadir objetos de tipo persona. Indica para qué propiedad crees más adecuado implementar un editor de propiedades:

Respuestas

La edad (es un entero).

El nombre (es un String).

La dirección, que es un objeto de tipo TDireccion, formado por una cadena o String para la calle, localidad y provincia y un entero para el número de la casa.

Retroalimentación

Ejemplo de creación de un componente JavaBean con netBeans.

Para ilustrar cómo se implementa un componente con una herramienta como NetBeans, crearemos uno que permita almacenar la información de un persona, guardaremos por ejemplo, su nombre, apellidos, teléfono y dirección:

  • El nombre se puede representar como una propiedad de tipo String.
  • Los apellidos también se pueden representar como una propiedad de tipo String.
  • El teléfono también puede ser una cadena de caracteres o String.
  • La dirección será una propiedad compuesta, por la dirección propiamente dicha, la población y la provincia.

Dado que la última propiedad no es simple, será necesario implementar un editor de propiedades para modificarla desde NetBeans. Veremos como crear este ejemplo.

Para saber más...

Si quieres conocer un poco más de este apartado de la tecnología Java puedes consultar la página del tutorial que tiene Oracle alojado en su página (está en inglés) y la especificación de la interfaz PropertyEditor: