You are on page 1of 25

Programacin de Sistemas 2003: Java Beans

Christian Lalanne A. Rodrigo Pinto A.

Java Beans
 Introduccin  Instalacin del Kit BDK1.1  Propiedades y Caractersticas importantes de JavaBeans  Como crear tus propios Beans  Ejemplos: Gauge.jar, Tcanv.jar, Juggler

Introduccin
 Programacin por componentes de software  Reutilizacion de codigo  Posibilidad de fabricar componentes de software u ocupar componentes creadas, para luego, ensamblarlos y crear un programa final  Proporciona una herramienta de diseo facil de usar: BeanBox  En general, estas nuevas tecnologas que permiten a los programadores construir entornos de programacin visual, se conocen como ingeniera de software basado en componentes, En Java, esta tecnologa es denominada JavaBeans

Como empezar a utilizar BDK 1.1


 Bajar el kit de desarrollo Java Beans (BDK) disponible en: http://java.sun.com/products/javabeans/soft ware/  Descomprimir  Linux?: ejecutar \run.sh  Windows?: ejecutar run

Caractersticas principales de los Beans (Introspeccin)


 Capacidad de informar dinmicamente a las herramientas de desarrollo visual de mtodos , propiedades y tipo de eventos que pueden generar o a los que pueden responder las componente de software.  La clase Introspector de java.beans proporciona un conjunto de mtodos estticos para que las herramientas obtengan informacin, mtodos y eventos de un componente de software.

Caractersticas principales de los Beans (Introspeccin)


 Esquemas de reflexin y diseo: Bsicamente la
clase introspector lee los nombres de los mtodos de una clase de componentes, identifica las propiedades de un componente de software y tambin la generacin de eventos de este componente, basndose en el paquete java.lang.reflect que ofrece la posibilidad de identificar los campos y mtodos de una clase; esto, en ausencia de informacin explicita

 Especificacin Explicita: la informacin sobre una


componente de software puede ser proporcionada (optativo) por una clase especial de informacin sobre componentes de software que implementa la interfaz BeanInfo.

Caractersticas principales de los Beans (Introspeccin)


 Esta interfaz (BeanInfo) proporciona mtodos para transportar explcitamente informacin sobre los mtodos, propiedades y eventos de una componente de software. La clase Introspector reconoce las clases BeanInfo por su nombre. (por ejemplo, si una componente de software se ha implementado a travs de la clase math, la clase BeanInfo relacionada se llamara mathBeanInfo).

Propiedades de los componentes de Software (Definicin)


 Son las caractersticas de apariencia y comportamiento de un Bean, pueden ser modificadas durante el diseo  En general, existen 3 tipos de propiedades de los componentes de software: indexadas, limitadas y restringidas  Propiedades indexadas: es una propiedad que puede tomar un arreglo de valores  Propiedades limitadas: aquella que alerta a otros objetos cuando su valor cambia  Propiedades restringidas: el objeto notificado puede confirmar o denegar el cambio

Propiedades de los componentes de Software (Eventos)


 Los Beans utilizan los eventos para comunicarse con otros Beans. Un Bean que requiere recibir eventos (oyente) registra su inters con un Bean que lanza eventos (fuente)  Las Herramientas de desarrollo pueden examinar un Bean para determinar que eventos puede disparar y cuales puede manejar.

Propiedades de los componentes de Software (Persistencia)


 Permite a los Beans guardar su estado y restaurarlo posteriormente  Los Java Beans utilizan la serializacin de objetos para soportar la persistencia.

Propiedades de los componentes de Software (Mtodos)


 Los mtodos de un Bean no son diferentes a los mtodos de Java, y pueden ser llamados desde otros Beans  Existen 2 tipos: obtencin y establecimiento  Los nombres de mtodos de obtencin comienzan por get.  Los nombres de mtodos de establecimiento comienzan por set.

Mtodos utilizados con propiedades simples


 Los metodos get...() y set...() se ocupan para obtener y setear propiedades simples de un Bean. Ej: Public nametype getname(). Public void setname (nametype namevalue).  Una propiedad es de solo lectura o solo escritura si falta uno de los mtodos de acceso anteriores.

Mtodos utilizados con propiedades indexadas


 Un componente de software que tenga una propiedad indexada poseer mtodos que admitan lectura y escritura de elementos individuales del arreglo o del arreglo completo de propiedades. Ej: Public widgettype getwidget(int index). Public widgettype[] getwidget(). Public void setwidget(int index, widgettype widgetvalue). Public void setwidget(widgettype[] widgetvalues).

Mtodos utilizados con propiedades limitadas


 Las propiedades limitadas requieren que se notifique a ciertos objetos cuando estas experimentan un cambio.  La notificacin del cambio se realiza a travs de un PropertyChangeEvent.  Los objetos que deseen ser notificados del cambio en una propiedad limitada debern registrarse como auditores.

Mtodos utilizados con propiedades limitadas


As, el componente de software que este implementando la propiedad limitada suministrar mtodos de esta forma:
Public void addPropertyChangeListener(PropertyChangeListener 1). Public void removePropertyChangeListener(PropertyChangeListener 1).

 Para registrar auditores en el PropertyChangeEvent de una propiedad especfica se deben proporcionar los mtodos siguientes.
Public void addPropertyNameListener(PropertyChangeListener 1). Public void removePropertyNameListener(PropertyChangeListener 1).

Mtodos utilizados con propiedades limitadas


 En estos mtodos, PropertyName se sustituye por el nombre de la propiedad limitada.  Los objetos que implementan la interfaz PropertyChangeListener, deben implementar el mtodo PropertyChange(). Este mtodo lo invoca el componente de software para todos sus auditores registrados, con el fin de informarles de un cambio en una propiedad.  Los mtodos que se utilizan con propiedades simples e indexadas que veamos anteriormente se aplican tambin a las propiedades limitadas

Mtodos utilizados con propiedades restringidas


 Para acceder a propiedades restringidas, se ofrecen los siguientes mtodos de registro de eventos:
Public void addVetoableChangeListener(VetoableChangeListener 1). Public void removeVetoableChangeListener (VetoableChangeListener 1). Public void addPropertyNameListener(VetoableChangeListener 1). Public void removePropertyNameListener(VetoableChangeListener 1).

Mtodos utilizados con propiedades restringidas


 Los objetos que implementan la interfaz VetoableChangeListener deben implementar el mtodo vetoablechange().  Este mtodo lo invoca el componente de software para todos sus auditores registrados con el fin de informarles del cambio de una propiedad.  Todo objeto que no apruebe el cambio en una propiedad puede arrojar un PropertyVetoException dentro del mtodo vetoablechange() para informar al componente cuya propiedad restringida hubiera cambiado de que el cambio no se ha aprobado.

Mtodos utilizados con propiedades restringidas


 Los mtodos que se utilizan con propiedades simples e indexadas que veamos anteriormente se aplican tambin a las propiedades restringidas

Ejemplos:

 Juggler  SimpleBean

Convertir una clase en un Bean


 Para convertir cualquier clase creada en un Bean, debemos seguir ciertas reglas:  Debe poderse instanciar: no se puede convertir una interfaz o una clase abstracta en un Bean.  Debe tener un constructor predeterminado o constructor por defecto ej: si la clase se llama Mybean, debe proporcionar un constructor Mybean( ).

Convertir una clase en un Bean


 Debe ser persistente: Debe implementar la interfaz Serializable o la interfaz Externalizable, que permiten que se copie como una serie de bytes en un flujo.

Ejemplos:
 Gauge.jar  Tcanv.jar

 Las clases e interfaces de los paquetes Java.beans estn organizadas en las categoras de: soporte de diseo, soporte de introspeccin y soporte de cambios en el manejo de eventos.  La especificacin de estas clases (mtodos disponibles, etc), se encuentran en la Documentacin del proyecto disponible en http://alumnos.elo.utfsm.cl/~wayne

Preguntas

You might also like