Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Referncias
Sun Microsystems
Documentos, Especificaes, Tutoriais, Software, etc http://java.sun.com/products/beans http://java.sun.com/beans/spec.html http://java.sun.com/docs/books/tutorial/javabeans/in dex.html
Flashline
Comercializao de Beans http://www.flashline.com/components/javabeans.jsp
Java Beans
Contedo
O que JavaBeans? Para qu Servem? Principais Conceitos Tratamento de Eventos no AWT Propriedades Instrospeco Exemplos
O que JavaBeans?
Um modelo de componente de software para Java
Descrio auto-contida Reutilizvel Facilita programao visual Pode ser inserido em um palete de componentes
Consultas e configuraes
Introspeco e Reflexividade
Persistncia e Empacotamento
Tratamento de Eventos
Button
ScrollBar
AWTEvent
List
AdjustementEvent
ActionEvent
Label
TextEvent
ComponentEvent
ItemEvent
Container
TextComponent
ContainerEvent
WindowEvent
Panel
Window
TextField
TextArea
FocusEvent
InputEvent
PaintEvent
Frame
Dialog
KeyEvent
MouseEvent
Produtores de evento (JavaBeans) devem conter mtodos para cadastrar consumidores de eventos
public void add<EVENTNAME>Listener(<EVENTNAME>Listener);
actionPerformed(ActionEvent) adjustementValueChanged(AdjustementEvent) componentHidden(ComponentEvent) componentMoved(ComponentEvent) componentResized(ComponentEvent) ItemListener ActionListener componentShown(ComponentEvent) itemStateChanged(ItemEvent) textValueChanged(TextEvent) TextListener AdjustementListener windowActivated(WindowEvent) windowClosed(WindowEvent) windowClosing(WindowEvent) ComponentListener WindowListener windowDeactivated(WindowEvent) windowDeiconified(WindowEvent) windowIconified(WindowEvent) ComponentAdaper WindowAdapter windowOpened(WindowEvent) mouseDragged(MouseEvent) mouseMoved(MouseEvent) ContainerListener MouseMotionListener componentAdded(ContainerEvent) componentRemoved(ContainerEvent) focusGained(FocusEvent) ContainerAdapter MouseMotionAdapter focusLost(FocusEvent) mouseClicked(MouseEvent) mouseEntered(MouseEvent) KeyListener FocusListener MouseListener mouseExited(MouseEvent) mousePressed(MouseEvent) mouseReseased(MouseEvent) KeyAdapter FocusAdapter MouseAdapter keyPressed(KeyEvent) keyReleased(KeyEvent) keyTyped(KeyEvent) EventListener
Propriedades em JavaBeans
Propriedades
Atributos ou caractersticas que so publicamente expostas pelo componente Padres de Design para propriedades permitem
Descobrir que propriedades um Bean expe Determinar atributos de leitura e gravao da propriedade Determinar o tipo da propriedade Mostrar o nome e valor das propriedades (em um formulrio); Alterar o valor das propriedades (design-time)
Categorias de Propriedades
Simples, Indexadas, Ligadas, Restritas
Propriedades Simples
Padro de codificao
public class MeuJavaBean { private <PropertyType> <PropertyName> = <defaultValue>; ... public <PropertyType> get<PropertyName>(); public void set<PropertyName>(< PropertyType> value); ... }
Propriedades Indexadas
Contem uma coleo de valores Dois Padres de Codificao
public class MeuJavaBean { public < PropertyType>[] get<PropertyName>(); public void set<PropertyName>(< PropertyType>[] value); }
public class MeuJavaBean { public < PropertyType> get<PropertyName>(int index); public void set<PropertyName>(int index, < PropertyType> value); }
Propriedades Ligadas
Usadas quando vrios objetos precisam ser automaticamente notificados de mudanas no valor de uma propriedade Classes e interfaces envolvidas
PropertyChangeListener PropertyChangeEvent PropertyChangeSupport
PropertyChangeEvent
Evento que contm informaes sobre a propriedade que mudou e os valores antes e aps a modificao Object getNewValue() PropertyChangeSupport Object getOldValue() Implementao bsica de componente que aceita Object getPropagationId() -- reservado cadastramento e descadastramento de listeners interessados e String getPropertyName() os notifica das modificaes void setPropagationId(Object) O JavaBean pode herdar de PropertyChangeSupport ou internalizar um objeto desta classe. addPropertyChangeListener(PropertyChangeListener) firePropertyChange(String, Object, Object) removePropertyChangeListener(PropertyChangeListener)
Propriedades Restritas
Uma mudana no valor da propriedade pode ser vetada por um ou mais VetoableChangeListeners Classes envolvidas
VetoableChangeListener PropertyChangeEvent VetoableChangeSupport PropertyVetoException
VetoableChangeSupport
Implementao bsica de componente que aceita cadastramento e descadastramento de listeners que podem vetar modificaes O JavaBean pode herdar de VetoableChangeSupport ou internalizar um objeto desta classe
PropertyVetoException
Exceo levantada caso haja veto de algum listener
Introspeco
MeuJavaBean java.bean.Instrospector getBeanInfo()
java.bean.BeanInfo
Objeto java.bean.BeanInfo
BeanDescriptor getBeanDescriptor() BeanInfo[] getAdditionalBeanInfo() MethodDescriptor[] getMethodDescriptors() PropertyDescriptor[] getPropertyDescriptors() int getDefaultPropertyIndex() EventSetDescriptor[] getEventSetDescriptors() int getDefaultEventIndex() Image getIcon(int iconKind)
Reflexividade (java.lang.reflect)
Permite manipular classes, interfaces e objetos contidos na mquina virtual Usada na construo de depuradores, ferramentas de construo de GUI, browsers de classes Executar em run-time, vrias operaes que normalmente so programadas
Exerccio
Construa um SimpleBean e o insira na paleta de componentes do JBuilder