Advanced Java Programming
(J2EE LC)
Unit 4 - Java Beans
Course Objective
Introducing Java Beans
Simple Java Bean
Why Java Bean
Java Beans in User Interface
Naming conventions
Summary
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 2
Technologies Ltd Version 1.00
References
“Developing Java Beans” by Robert Englander
“The awesome Power of Java Beans” by lawrence H Rodrigues
“Creating Java Beans: Components for Distributed Applications” by Mark Watson
“Java Beans for Real Programmers” by PeterWayner
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 3
Technologies Ltd Version 1.00
What is a Java Bean?
Component
– An artifact that is one of the individual parts of which makes a composite entity
– Usually a component is a part that can be separated from or attached to a system or
module in a system
A Java bean is a reusable software component
– Java Beans is the de-facto component model in Java world
– Java Bean is NOT AN Enterprise Java Bean (EJB)
• EJB is covered in Introduction to J2EE
Various Frameworks and Tools can use Java Bean components to build
something bigger
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 4
– Example 1: An address component holds address of a person
Technologies Ltd Versionin a program
1.00
What is Java Beans? (Continued…)
Java Beans API provides a framework for defining software components that
are
– Reusable: Component which is capable of being used again and again
– Embeddable: Component which is expected to function without human
intervention.
– Modular: A solution made of several discrete pieces, so that any piece can be
replaced without rebuilding the whole solution
Allows creation of reusable components
– Library of reusable components can be built
– Third Party library of components can be used to build an application
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 5
Technologies Ltd Version 1.00
Frameworks and Builder tools which use Java Beans components use Java
class Employee {
Simple Java Bean private int employeeNumber;
private String employeeName;
Employee Class ...
public void setEmployeeNumber
– Has all data members
(int employeeNumber) {
private
this.employeeNumber=
– Does not have a employeeNumber;
constructor }
public int getEmployeeNumber() {
– A pair of public Get/Set
return employeeNumber;
methods for all or most
}
member variables public void setEmployeeName
– Names of Get/Set methods (String employeeName) {
should match the variable this.employeeName=
employeeName;
names
}
Results in an Employee public String getEmployeeName() {
Bean return employeeName;
}
Has properties
...
ER/CORP/CRS/LA22/003
– employeeNumber } © 2005, Infosys
Copyright 6
Technologies Ltd Version 1.00
– employeeName
Why Java Beans?
Many real life situations require components to work with various frameworks and
libraries
Data is in text files, XML files or other textual forms have to be mapped programmatically
in many applications
– Names in text form can be mapped to variable names of a class
– Reflection API <Employee>
in Java is used to achieve this
– Example: <employeeNumber>29853</employeeNumber>
<employeeName>Tom</employeeName>
...
</Employee>
This is one of the reasons why Java Beans is used 7extensivelyER/CORP/CRS/LA22/003
Copyright © 2005, Infosys
in both UI frameworks
Technologies Ltd Version 1.00
and Server side code
Properties
Properties are Discrete attributes of a Bean that are referenced by name
– Example: “EmployeeNumber” is a property of EmployeeBean
Value of a property can be read programmatically by using a name
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 8
Technologies Ltd Version 1.00
Where do we use Java Beans?
Data handling and data intensive applications for mapping textual data to variables
Server side applications which use component based design
Web technologies and related frameworks like JSP, Struts etc
– JSP Tag beans (covered in Introduction to J2EE course)
– Struts is a framework for presentation layer of Java based web applications
GUI applications based on Java Beans components
– Rarely used because of limited scope of Java in GUI applications
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 9
Technologies Ltd Version 1.00
Java Beans in User Interface
BDK (Bean Development Kit) was a specification from Sun for creating and using
reusable UI based Java Beans
Difference in UI Java Beans compared to Simple Java Beans
– Methods to draw on screen are provided
– Methods to persist data and settings
• Persistence: storing data of an object in a non-volatile manner and retreiving it when required
– Event Handling methods to respond to user action on UI components
– Customization of component’s features which are visible graphically
– Application Builder or similar GUI frameworks can understand and use these components to
build GUI Screens
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 10
Technologies Ltd Version 1.00
Java Beans in User Interface (Continued…)
Application Builder tool and other GUI Frameworks for using Java Beans
– Use Reflection API and display all the properties and events offered by a Java Bean in a toolbar
in the development environment
– Developer can manipulate properties and write event handler code in development environment
– Properties can also be manipulated programmatically
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 11
Technologies Ltd Version 1.00
Application Builder Tool Java Bean components
(Classified in tabs)
Properties Window – Displays List of events
properties of selected bean supported
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 12
Technologies Ltd Version 1.00
Sample Java Beans used in User Interface
Button Bean
Slider Bean
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 13
Technologies Ltd Version 1.00
Naming Conventions
Bean
– Class name: Any user defined name
– Should not have a constructor
Properties
– What makes up a property?
– Example:
• A private data member called ‘employeeNumber’
• A public get method by name ‘getEmployeeNumber’
• A public set method by name ‘setEmployeeNumber’
• Together these three form a property of a bean called ‘EmployeeNumber’
• Note: Method names and variables names are case sensitive
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 14
Technologies Ltd Version 1.00
Summary
Java Beans is the de-facto component framework used in Java applications
– Used in data manipulation, server side code
– Used rarely in GUI applications
How to write a simple Java Bean
– Define Class, Data members and Properties
Use of Java Bean in applications
– Data handling and data intensive applications
– Server side applications
– Web technologies and related frameworks
Java Beans in User Interface
– BDK and GUI Frameworks for using Java Beans
Application Builder tool which contains
– Java Bean components
– Properties Window which displays properties of selected bean
– List of events supported
Naming conventions
– For Bean
– For Properties
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 15
Technologies Ltd Version 1.00
Thank you
ER/CORP/CRS/LA22/003
Copyright © 2005, Infosys 16
Technologies Ltd Version 1.00