JavaBean Component - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

JavaBean Component

Description:

Compile the source file(s) Create a manifest file. Generate a JAR file. Start BDK. Test ... Compile and make jar file. Javac -d . SimpleBean.java. Edit a ... – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 41
Provided by: spsu
Category:

less

Transcript and Presenter's Notes

Title: JavaBean Component


1
JavaBean Component
  • Java bean is a reusable software component that
    can be manipulated visually in a builder tool
  • Graphic bean and Non-graphic bean
  • Javabean is not distributed component like EJB
  • Interface of javabean is provided by
  • 1. Design pattern(implicitly)
  • 2. Using a class to implement the BeanInfo
    or Customizer
  • interface(explicitly)

2
Javabean Component
  • It is a binary building block
  • Development and deployment of a javabean
  • Assembly javabeans to build a new javabean or a
    new application, applet
  • Write glue codes to wire all beans together
  • javabean with CORBA as a CORBA client
  • Client side javabean
  • Javabean for business logic process in MVC on
    server
  • javabean on server is not visible

3
Advantage of Java Bean
  • Write once, run anywhere
  • The properties, events, and methods of a bean
    that are exposed to an application builder tool
    can be controlled
  • They are the interface of the bean.
  • They are platform independent
  • Configuration setting of a bean can be saved in
    persistent storage and restored later
  • Bean may register and receive events from other
    object and can generate event sent to other
    objects
  • (Bean communication)

4
BeanInfo
Methods
JavaBean Component
Events
Properties
JAR
Customizer
5
Design Pattern
  • All beans should implement the Serializable
    interface so that the state can be saved and
    later restored
  • Methods must be made public
  • All exposed methods should be threadsafe,
    possibly synchronized to prevent more than one
    thread from calling method at a given time
  • Propertie X is exposed by public setX and getX
    methods
  • Boolean property may be exposed by isX method
    which returns a boolean value
  • The bean which may trigger event must provide
    addEventListener and removeEventListener mehods
    for other bean to register with it to be notified

6
Deployment of Bean
  • All java classes can be converted to a bean
  • Bean is compressed and saved in the format of
    jar file which contains manifest file, class
    files, gif files, and other information
    customization files
  • Sun NetBeans, BDK, Visual Café, JBuilder, Visual
    Age are the bean builder tools

7
Criteria to be a bean
  • Can this piece of code be used in more than one
    area?
  • Can you quickly think of ways that this piece of
    code might be customized?
  • Is the purpose of this code easy to explain?
  • Does this code module contain all the info it
    needs to work itself?
  • Does it have good encapsulation?
  • If you answer all yes, You should make the
    class a bean

8
JAR file
  • JAR file allows you to efficiently deploy a set
    of classes and their associated resources.
  • JAR file makes it much easier to deliver,
    install, and download. It is compressed.

9
Manifest file
  • Manifest.tmp
  • Name SimpleBean.class
  • Java-Bean True
  • ...

10
Creating and extract a jar file
  • Create a jar file
  • jar cfm simplebean.jar manifest.tmp
    .class
  • Extracting files from a jar file
  • jar xf simplebean.jar

11
Develop a New Bean
  • Create a directory for the new bean
  • Create the java bean source file(s)
  • Compile the source file(s)
  • Create a manifest file
  • Generate a JAR file
  • Start BDK
  • Test
  • Working-dir can be at ltbdkgt\demo where ltbdkgt
    is the installation dir for BDK

12
Create bean source file - SimpleBean.java
  • package simplebean
  • import java.awt.
  • import java.io.Serializable
  • public class SimpleBean extends Canvas implements
    Serializable
  • public SimpleBean()
  • setSize(60,40)
  • setBackground(Color.red)

13
Compile and make jar file
  • Javac -d . SimpleBean.java
  • Edit a manifest file called manifest.tmp
  • Name SimpleBean.class
  • Java-Bean True
  • jar cfm ..\jars\simplebean.jar manifest.tmp
    simplebean\.class
  • SimpleBean and colorsbean demo

14
Introspection
  • Process of analyzing a bean to determine the
    capability
  • Allows application builder tool to present info
    about a component to software designer
  • Naming convention implicit method
  • BeanInfo class to explicitly infer info of a bean

15
Design Pattern for Properties
  • Property is a subset of a beans state which
    determines the appearance and behavior of the
    component
  • Simple property
  • Indexed Property
  • Bound Property
  • Constrained property

16
Simple Property
  • Simple property has a single value.
  • N is the name of the property and T is its type
  • public T getN()
  • public void setN(T arg)
  • For readonly property there is getN() method only

17
Indexed Property
  • One property may consists of multiple values
    stored in an array
  • public T getN(int index)
  • public void setN(int index, T value)
  • public T getN()
  • public void setN(T values)
  • where N may be a double data and T is double

18
Bound Property
  • It can generate an event when the property is
    changed
  • The event is of type PropertyChangeEvent and is
    sent to objects that previously registered an
    interest in receiving such notifications
  • bean with bound property - Event source
  • Bean implementing listener -- event target

19
Implement Bound Property in a Bean
  • 1. Import java.beans package
  • 2. Instantiate a PropertyChangeSupport object
  • private PropertyChangeSupport changes new
  • PropertyChangeSupport(this)
  • 3. Implement methods to maintain the property
    change listener list
  • public void addPropertyChangeListener(Property
    ChangeListener l)
  • changes.addPropertyChangeListener(l)
  • also removePropertyChangeListener method is
    needed

20
Event Source Cont.
  • 4. Modify a propertys setter method to fire a
    property change event when the property is
    changed.
  • Public void setX(int newX)
  • int oldx x
  • x newX
  • changes.firePropertyChange(x, oldX,
    newX)

21
Implement Bound Property Listener
  • 1. Listener bean must implement
    PropertyChangeListner interface
  • public class MyClass implements
    PropertyChangeListener, Serializable
  • 2. It must override this method
  • public abstract void propertyChange(PropertyChange
    event evt)

22
Registration
  • For example
  • OurButton button new OurButton()
  • button.addPropertyChangeListener(aButtonListener)
  • ..

23
Constrained Property
  • It generates an event when an attempt is made to
    change it value
  • The event type is PropertyChangeEvent
  • The event is sent to objects that previously
    registered an interest in receiving an such
    notification
  • Those other objects have the ability to veto the
    proposed change
  • This allows a bean to operate differently
    according to the runtime environment

24
Three Parts in Implementation of Constrained
Property
  • 1. Source bean containing one or more constrained
    properties
  • 2. Listener objects that implement the
    VetoableChangeListener interface. This object
    either accepts or rejects the proposed change.
  • 3. PropertyChangeEvent object containing property
    name, old value, new value.

25
Implement Constrained Property in a Bean
  • Bean with constrained property must
  • 1. Allow VetoableChangeListener object to
    register and unregister its interest in receiving
    notifications
  • 2. Fire property change at those registered
    listeners. The event is fired before the actual
    property change takes place

26
Implementation of Constrained Property in a Bean
  • 1. Import java.beans package
  • 2. Instantiate a VetoableChangeSupport object
  • private VetoableChangeSupport vetosnew
  • VetoableChangeSupport(this)
  • 3. Implement methods to maintain the property
    change listener list
  • public void
  • addVetoableChangelistener(VetoableChangelis
    tener l)
  • vetos.addVetoableChangeListener(l)

27
Cont.
  • 4. Write a propertys setter method to fire a
    property change event
  • public void setX(int newX)
  • int oldXX
  • vetos.fireVetoableChange(X, oldX,
    newX)
  • //if no veto there
  • XnewX
  • changes.firePropertyChange(X, oldX,
    newX)

28
Implementing Constrained Property Listeners
  • 1. Implements the VetoableChangeListener
    interface which has an abstract method
  • Void vetoChange(PropertyChangeEvent evt)
  • 2. Overide this abstract method. This is the
    method that will be called by the source bean on
    each object in the listener list kept by
    vetoableChangeSupport object

29
Persistence
  • It has the ability to save a bean to storage and
    retrieve it at a later time
  • Configuration settings are saved
  • It is implemented by Java serialization
  • If a bean inherits directly or indirectly from
    Component class it is automatically Serializable.
  • Transient keyword can be used to designate data
    members not be saved ex. Thread reference member

30
Customizers
  • Property sheet may not be the best user interface
    for a complex component
  • It can provide step-by-step wizard guide to use
    component
  • It can provide a GUI frame with image which
    visually tells what is changed such as radio
    button, check box, ...
  • It can customize the appearance and behavior of
    the properties

31
Design Pattern for User Defined Events
  • Bean can generate events and send them to other
    objects in delegation event model
  • Listener registration and unregistration
  • public void addTListener(TListener x)
  • public void removeTListener(TListener x)

32
User defined listener and event
  • Timer class will fire off timeout event
  • public interface TimerListener extends
    EventListener public void timeOut(TimeEvent
    e)
  • public class TimerEvent extends EventObject
  • int count0
  • public TimerEvent(Object obj)super(obj)
  • public int getCount() return count
  • public void setCount(int
    count)this.countcount

33
Timer class fires off timeout event to all
registered objects
  • public void startTimer()
  • if (tnull)tnew Thread(this) t.start()
  • public void run()for()
  • tryt.sleep(timeout)
  • catch(Exception e)
  • fireOff()
  • void fireOff()TimerEvent tenew TimeEvent(this)
  • te.setCount(number)
  • Vector listeners (Vector)listeners.clone()
  • for(int I0Iltlisteners.size() I)
  • ((TimerListener)listeners.elementAt(I).timeOut(
    te)

34
Any class that implements TimerListener can
register itself by calling addTimerListener()
  • Vector listeners new Vector()
  • public void addTimerListener(TimerListener l)
  • listeners.addElement(l)
  • public void removeTimerListener(TimerListener l)
  • listeners.removeElement(l)
  • Any class that implements TimerListener interface
    must override the timeOut method of interface
    TimerListener to respond the notification

35
Colors.java
  • package colors
  • import java.awt.
  • import java.awt.event.
  • public class Colors extends Canvas
  • transient private Color color
  • private boolean rect
  • public Colors()
  • addMouseListener(new MouseAdapter()
  • public void
    mousePressed(MouseEvent me)change())
  • rectfalse setSize(200,100) change()

36
Colors.java(Cont.)
  • public boolean getRect() return rect
  • public void setRect(boolean flag)this.rectflag
    repaint()
  • public void change()colorrandomColor()
    repaint()
  • private Color randomColor()
  • int r(int)(255Math.random())
  • int g (int)(255Math.random()) int
    b(int)(255Math.random())
  • return new Color(r,g,b)
  • public void paint(Graphics g)
  • Dimension d getSize() int hd.height int
    wd.width g.setColor(color)
  • if(rect)g.fillRect(0,0,w-1,h-1)
  • elseg.fillOval(0,0,w-1,h-1)

37
Summary
  • JavaBean is a platform-neutral component
    architecture for reusable software component
  • It is a black box component to be used to build
    large component or application
  • Property,method,event, introspector, customizer
    are parts of javabean interface

38
Quiz
  • True of False
  • 1. One JavaBean can fire off an event taken by
    more than one targets.
  • 2. Javabean cant be inherited by other bean.
  • 3. Javabean can be distributed.
  • 4. Javabean is in binary format and deployed in
    JAR file
  • 5. Javabean can only be introspected by property
    sheet.
  • 6. Javabean is a language independent
    architecture

39
Quiz
  • Javabean can only be developed by BDK.
  • Every java class can be turned into a Javabean.
  • Javabean must be a graphic component.
  • Javabean can be used on web server.
  • The event a Javabean can trigger is a subclass of
    class EventObject
  • The bound property bean can prevent its property
    change by other bean.
  • JAR file is compressed file

40
Quiz
  • Event source must implement listener and override
    the method provided by the listener
  • Event Target must provide the addTListener and
    removeTListener methods
  • BeanInfo class is used to explicitly introspect
    the bean property
  • Customizer class can be used to provide winzard
    for bean configuration
Write a Comment
User Comments (0)
About PowerShow.com