Speedy and efficient information processing is crucial to our socially and highly developed technology. Computer can help the intolerable burden of handling the ever increasing amount or information with government department, public services and business concerns expected to contain because of their ability to analyze information as well as to retain, update and reproduce it because of their versality to present it in a variety of forms. This may also to some extent lead to problems occurring due to information explosion.

About Project
POST OFFICE works in every walk of our life. Through the automation of this system one can easily generate the information about the customer available and also about the old records. For this efficient software the first and the foremost thing is that all the requirements should be known before hand and the developer should devote its effort for the completion of that requirement which are demanded by the customer should be fulfilled. This system can be used in various education departments and can distribute the copies of the system among the management and staff members for the required information of their customer. This very handy project for any user and includes following features:● Having customer information and total amount payable. ● for the help of user it displays each and every detail about required topics ● Maintains all the old record for later reference ● Have provision for automatic update as per the status ● System must handle user enquiry


Software Development Life Cycle
The Software Development Life Cycle, as outlined by Edward Yourdon in his book modern structure analysis (1989) has been followed in this project with minor modifications. The modified life cycle is shown overleaf. The life cycle consists of the following activities:

1) SURVEY- This activity is also known as feasibility study. It begins with a
request from the user for a new system. It involves the following: ● Identify the responsible user for a new system. ● Clarify the user request ● Identify deficiencies in the current system ● Establish goals and objectives of new system ● Determine the feasibility for new system ● Prepare the project charter which will guide about the remainder of the project

2) SYSTEM ANALYSIS – The objective of the system analysis activity is to
develop structured system specification for the proposed system. The structured system specification should describe what the proposed system would do; independent of the technology which will be used to implement these requirements. The structured system specification will be used to implement these requirements. The structured system specification will be called the essential model (also known as logical model). The essential model may itself consist of multiple models, modeling different aspect of the system. Generally three models used for such purpose are:-

● DATA FLOW DIAGRAM (DFD) – It models the functioning of the
system. DFD may consist of following ● Context diagram ● Leveled Data Flow Diagram ● Process specification for Elementary Bubble ● Data dictionary for the flows and stores on the DFD

● ENTITY RELATIONSHIP DIAGRAM – It models the functioning
of the data and their relationship.

behavior of the system.

– It models the time dependent


3) PRLIMINARY DESIGN – This activity deals with certain design issues,
which are to be finalized in consultation with user. The two most common design issues of relevance to the user are the automation boundary and the human machine interface. The output of the activity is the user implementation model. The major part of the user implementation model is the specification for the user interface of the proposed system. The user implementation model is also referred to as the physical model of the proposed system. The model, in addition to the essential model , defines the following for the proposed system: ● Automation boundary ● Report layouts ● Layouts of the source documents ● Screen Layouts for the data entry form ● Menu

4) SYSTEM DESIGN – System design involves transformation of the user
implementation model into software design. The design specifications of the proposed system consist of mainly database schema.

5) IMPLEMENTATION – This activity includes programming, testing and
integration of modules into a progressively more complete system.

6) ACCEPTANCE TEST GENERATION – This activity generates a set
of data that can be used to test the new system before accepting it.

7) QUALITY ASSURANCE – Assurance is also known as final testing. This
activity requires, as its input acceptance test data generated in acceptance test generation and an integrated system produced by implementation.


About the current system

Advantages of the current system
The project Post office management system is created in 4GL GUI based system so that it is easy to handle. It also increases the efficiency of the end user, because it will reduce the reluctant jobs, which are tedious to complete. The Post office management system also has automated capability to complete job, it automatically generates the reports, so it reduces the work manually.

Advantages of POST OFFICE MANAGEMENT SYSTEM:1. This system will improve the performance of the company. 2. It reduces the tedious jobs like reluctant work, long procedures, automated report generation, up to date information. 3. It will improve the Post Office Management, since all the information is available whenever required. 4. It provides quick processing thus helps in transaction and updating in master records can be performed in few records. 5. It allows easy generation of all types of reports. 6. It provides accurate output. 7. It gives fast answer of queries. 8. The amount of paper is reduced. 9. Better security 10. Economical. 11. Better Control.


Deficiencies of the manual system:
1. Lack of immediate retrieval of information - In manual system, lot of time is wasted in retrieving information. Much searching is required before required is found. This wastes a lot of time of the user as well as the person. 2. Lack of immediate information storage – In manual system, it is difficult to store information at proper place at that very moment. This is because the person is unable to quickly locate the place where the information is to be stored. 3. Prompts updating not possible – Changes are quite natural in all walks of life. Information and stored data also changes from time to time. These changes should be incorporated in the working also to keep the information up to date. However, bringing about changes through the manual system is a slow and tedious process because of which inaccurate information storage occurs. 4. Unplanned working – The manual system lacks the element of planned working. Records are not properly maintained. This creates a lot of problems at times like during information retrieval and storage 5. Insignificant generation of managerial and strategic reports. – In manual system, reports for management are difficult to be generated and strategic reports are impossible. This is because for these reports proper storage of information, its retrieval and its filtering are very important and very tough in manual system. 6. Accuracy – The manual system lacks accuracy in working and a number of operations may be performed incorrectly, the computations that are done in the organization may be incorrect and whatever are generated in the system may be inaccurate. 7. Reliability – The reliability of the manual system is considered to be low because of the above given reasons including the fact that ‘TO error is human’. Any task that is performed by men, always contain the risk of errors. 8. Redundancy of information – In manual system, particular information may be stored at a number of places, lending to redundancy. Redundancy of data or information creates a number of problems storage space is wasted; changes at one place are to be made at a number of places and so on.


Goals of the proposed system
1. Immediate retrieval of information – The main objective of the new system is to provide for quick and efficient retrieval of information, any type of information would be available to the user whenever he requires. Facility would be provided for online query to cut down on the response time greatly. 2. Immediate storage of information – In the proposed system, it will be easy to store information at any given time at the correct places. The location of storage would be easily available and user will face no difficulty. 3. Prompt updating of information – In the proposed system, the information will always remain up to date as the updating will be prompt and without any efforts. This factor will be of great importance in the proposed system as it determines the integrity of the information stored. 4. Fast computation of information – The computation of information will be quite fast in the proposed system. Not only mathematical calculations, but also logical comparisons will be quick in the new system. 5. Planned approach toward working – The working is the service center information system will be well planned and organized. The data will be stored properly in the data store which will help in retrieval of information as well as in its storage. 6. Generation of managerial and strategic reports – The new system would provide for regular generation of reports which would help the management in decisions making work and in controlling the over-all working of the organization. The generation of these reports would be possible only if the system is organized such that retrieval of information can be made on conditions. 7. Accuracy – The level of accuracy in the new proposed system would be higher. All operations and computations would be done correctly and this will ensure that whatever information is coming from the center, it is accurate. 8. Reliability – The reliability of the proposed system would be high due to the above stated reasons. The reason for the increased reliability of the system is that now there would be proper storage of information, its maintenance would be well managed and retrieval would be possible in the desired manner. 9. Non Redundant Information – In the new system, utmost care be taken that no information is repeated, any usage of storage or otherwise. This would assure economic usage of storage or space and consistency in the data stored. This will also help make those changes easily as the change would have to be made only at that very place and no where else.


To make the application smoothly and can be used to its optimum level following Hardware and Software requirements are required: • • • • • 128 MB of RAM PENTIUM III processor or equivalent or higher versions. At least 5GB of Hard disk. Java Run Time Environment(JRE) – jdk1.5 (As Front End Tool) SQL server (As Back End Tool


Tools and Platforms
Stay with us on academic presentation on “POST OFFICE MANAGEMENT SYSTEM”. This project is developed on Java Platform using the database technology at its core. As the images and graphics give more appealing effect to the eyes of the user then the other conventional format, so as to make project more effective and to make the project to able to store the information about various entities involved. The project incorporates the use of software tools like:JAVA Language – Front End SQL Server – Back End The Front end is the software which manages the logical representation of data which Back end manages to manipulate and store data.


What is java?
Java is a general purpose object oriented programming language . It is the first programming language that is not tied to any particular hardware or operating system .The language is based on the concept of an object. Java is highly derived from C++ . Most striking feature of the language is that it is platform neutral language. There were five primary goals in the creation of the Java language: • It should use the object-oriented programming methodology. • It should allow the same program to be executed on multiple operating systems. • It should contain built-in support for using computer networks. • It should be designed to execute code from remote sources securely. • It should be easy to use and borrow the good parts of older object-oriented languages like C++.

Java tools
In order to write java application or applets ,one need more than a language . The tools that lets one to write , test , debug programs.

Java features
● Compiler and Interpreted ● Platform independent ● Simple ● Secure ● Familiar ● Portable ● Object-Oriented ● Robust ● Multithreaded ● High performance ● Distributed ● Dynamic

Compiler and Interpreted - There is a java compiler , named javac . The java
compiler takes input source code files (these files typically have the and converts them into compiled bytecode files.The java Interpreter known as javac can be used to execute java application .The interpreter translates bytecode directly into program actions.

Platform independent - Java programs can be easily moved from one computer to
another, anywhere and anytime.Changes and upgrades made in operating systems, processors and system resources will not force any changes in java programs.

Simple - Java is designed to be easy for programmer to learn and use efficiently.


Secure- When we use a java compatible web browser, we can safely download java
applets without fear of virus infection. Java achieves this protection by confining a java program to java execution environment and not allowing it access to other parts of the computer.

Familiar- It is modeled on C, C++ languages. Java code looks like C++. Portable- Java compiler generates bytecode instructions that can be implemented on
any machine and also the size of the primitive data types are machine independent.

Object-Oriented - Java is a true object-oriented language. All program code and data
reside within objects and classes.

Robust -It provides many safeguards to ensure reliable code. It has strict compile time
and run time checking for data types. Designed as a garbage-collected language relieving the programmers and also incorpates the concept of exception handling which captures series errors.

Multithreaded - Java supports handling multiple tasks simultaneously which greatly
improves the interactive performance of graphical applications.

High performance - Java performance is impressive for an interpreted language ,
mainly due to use of immediate bytecode . Use of multithreaded and further its architecture is also designed to reduce overheads during runtime.

Distributed - It has ability to share both data and programs. Java applications can
open and access remote objects on internet which enables multiple programmers at multiple remote locations to collaborate and work together on single project.

Dynamic - Java is capable of dynamically in new class libraries , methods and objects
.It supports functions written in other languages like C,C++ called as native methods.

Automatic garbage collection - One idea behind Java's automatic memory
management model is that programmers should be spared the burden of having to perform manual memory management. In some languages the programmer allocates memory to create any object stored on the heap and is responsible for later manually deallocating that memory to delete any such objects. If a programmer forgets to deallocate memory or writes code that fails to do so in a timely fashion, a memory leak can occur: the program will consume a potentially arbitrarily large amount of memory. In addition, if a region of memory is de-allocated twice, the program can become unstable and may crash. In Java, this potential problem is avoided by automatic garbage collection. The programmer determines when objects are created and the Java runtime is responsible for managing the objects' lifecycle. The program or other objects can reference an object by holding a reference to it (which, from a low-level point of view, is its address on the heap). When no references to an object remain, the Java garbage collector


automatically deletes the unreachable object, freeing memory and preventing a memory leak. Memory leaks may still occur if a programmer's code holds a reference to an object that is no longer needed—in other words, they can still occur but at higher conceptual levels. Comparing Java and C++, it is possible in C++ to implement similar functionality (for example, a memory management model for specific classes can be designed in C++ to improve speed and lower memory fragmentation considerably), with the possibly cost of extra development time and some application complexity. In Java, garbage collection is built in and virtually invisible to the developer. That is, developers may have no notion of when garbage collection will take place as it may not necessarily correlate with any actions being explicitly performed by the code they write. Depending on intended application, this can be beneficial or disadvantageous: the programmer is freed from performing low-level tasks but at the same time lose the option of writing lower level code.

Java Magic: The Bytecode
Bytecode is a highly optimized set of instruction designed to be executed by the java runtime system, which is called Java Virtual Machine and it exists only inside the computer memory.

Java Program

Java Compiler

Virtual Machine

Source code Process of Compilation



Java Interpreter

Machine code

Virtual Machine

Real Machine

Process of converting Bytecode into Machine code
Object Oriented Programming
Object Oriented Programming is an approach that provides a way of modularizing programs by creating partitioned memory area for both data and functions that can be used as templates for creating copies of such modules on demand.

Objects and Classes - An object is a software bundle of variables and related
methods. Objects are key to understanding object-oriented technology. Real-world objects share two characteristics: They all have state and behavior. Software objects are modeled after real-world objects in that they too have state and behavior. A software


object maintains its state in one or more variables. A variable is an item of data named by an identifier. A software object implements its behavior with methods. A method is a function (subroutine) associated with an object. In the Java programming language, an object can specify one of four access levels for each of its variables and methods. A class is a blueprint that defines the variables and the methods common to all objects of a certain kind. After you've created the class, you can create any number of objects from that class. When you create an instance of a class, the system allocates enough memory for the object and all its instance variables. Each instance gets its own copy of all the instance variables defined in the class. Classes can also define class variables. A class variable contains information that is shared by all instances of the class .A class can also declare class methods. You can invoke a class method directly from the class, whereas you must invoke instance methods on a particular instance.

Encapsulation - Wrapping of data and methods into a single unit is known as
encapsulation. It is the most striking feature of class. The data is not accessible to outside world and only those methods which are wrapped in the class can access it. The insulation of the data from direct access by the program is called data hiding.

Inheritance - Inheritance is the process by which objects of one class acquire the
property of objects of another class. Each subclass inherits state .However, subclasses are not limited to the states and behaviors provided to them by their superclass. Subclasses can add variables and methods to the ones they inherit from the superclass. It supports the concept of hierarchical classification it also provides the use of reusability. .

Polymorphism - This means the ability to take more than one form. An operation
may exhibit different behaviour in different instances. The behaviour depends upon the types of data used in the operation. It plays an important role in allowing objects having different internal structures to share external interface.


JDK 1.0(January 23, 1996) — Initial release. JDK 1.1(February 19, 1997) - Inner classes added to the language J2SE 1.2(December 8, 1998) — Codename Playground. J2SE 5.0 were rebranded Java2 and the version name "J2SE" (Java 2 Platform, Standard Edition) replaced JDK to distinguish the base platform from J2EE (Java 2 Platform, Enterprise Edition) and J2ME (Java 2 Platform, Micro Edition). J2SE 1.3(May 8, 2000) — Codename Kestrel. J2SE 1.4(February 6, 2002) — Codename Merlin. J2SE 5.0(September 30, 2004) — Codename Tiger.(Originally numbered 1.5, which is still used as the internal version number.[1]) Java SE 6 — Codename Mustang. As of 2006 this is currently in development under JSR 270. A beta version was released on February 15, 2006.Beta 2 was released on June 15, 2006 and is available at The final release is expected autumn 2006. Java SE 7 — Codename Dolphin. This is in the early planning stages. The Dolphin Project will start up in late July, with release estimated in 2008.[3]


Java SE - Java Database Connectivity (JDBC)

The Java Database Connectivity (JDBC) API is the industry standard for databaseindependent connectivity between the Java programming language and a wide range of databases – SQL databases and other tabular data sources, such as spreadsheets or flat files. The JDBC API provides a call-level API for SQL-based database access. JDBC technology allows you to use the Java programming language to exploit "Write Once, Run Anywhere" capabilities for applications that require access to enterprise data. With a JDBC technology-enabled driver, you can connect all corporate data even in a heterogeneous environment. The JDBC API is the industry standard for database-independent connectivity between the Java programming language and a wide range of databases. The JDBC API provides a call-level API for SQL-based database access. JDBC technology allows you to use the Java programming language to exploit "Write Once, Run Anywhere" capabilities for applications that require access to enterprise data.

JDBC API Overview
The JDBC API makes it possible to do three things: • Establish a connection with a database or access any tabular data source • Send SQL statements • Process the results

JDBC Architecture
The JDBC API contains two major sets of interfaces: the first is the JDBC API for application writers, and the second is the lower-level JDBC driver API for driver writers. JDBC technology drivers fit into one of four categories. Applications and applets can access databases via the JDBC API using pure Java JDBC technology-based drivers, as shown in this figure:


Left side, Type 4: Direct-to-Database Pure Java Driver This style of driver converts JDBC calls into the network protocol used directly by DBMSs, allowing a direct call from the client machine to the DBMS server and providing a practical solution for intranet access. Right side, Type 3: Pure Java Driver for Database Middleware This style of driver translates JDBC calls into the middleware vendor's protocol, which is then translated to a DBMS protocol by a middleware server. The middleware provides connectivity to many different databases. The graphic below illustrates JDBC connectivity using ODBC drivers and existing database client libraries.

Left side, Type 1: JDBC-ODBC Bridge plus ODBC Driver This combination provides JDBC access via ODBC drivers. ODBC binary code -- and in many cases, database client code -- must be loaded on each client machine that uses a JDBC-ODBC Bridge. Sun provides a JDBC-ODBC Bridge driver, which is appropriate for experimental use and for situations in which no other driver is available.


Right side, Type 2: A native API partly Java technology-enabled driver This type of driver converts JDBC calls into calls on the client API for Oracle, Sybase, Informix, DB2, or other DBMS. Note that, like the bridge driver, this style of driver requires that some binary code be loaded on each client machine. For comparison of driver types, please see the article published in Computerworld.

Partnering for Progress
Sun worked with an array of companies in the industry to create and rapidly establish the JDBC API as the industry-standard, open interface for Java applications to access databases.

Industry Momentum
Leading database, middleware and tool vendors have been building support for JDBC technology into many new products. This ensures that customers can build portable Java applications while choosing from a wide range of competitive products for the solution best suited to their needs. See the Industry Support page for a list of companies that are shipping products with support for JDBC technology.

Advantages of JDBC Technology Leverage Existing Enterprise Data
With JDBC technology, businesses are not locked in any proprietary architecture, and can continue to use their installed databases and access information easily -- even if it is stored on different database management systems.

Simplified Enterprise Development
The combination of the Java API and the JDBC API makes application development easy and economical. JDBC hides the complexity of many data access tasks, doing most of the "heavy lifting"for the programmer behind the scenes. The JDBC API is simple to learn, easy to deploy, and inexpensive to maintain.

Zero Configuration for Network Computers
With the JDBC API, no configuration is required on the client side. With a driver written in the Java programming language, all the information needed to make a connection is completely defined by the JDBC URL or by a DataSource object registered with a Java Naming and Directory Interface (JNDI) naming service. Zero configuration for clients supports the network computing paradigm and centralizes software maintenance.

Relating JDBC to ODBC There is a very close relationship between API and JDBC architecture and (open database connectivity) ODBC counterparts. The JDBC –ODBC bridge enables you to access databases using ODBC drivers from JDBC . JDBC –ODBC bridge effectively


translate the JDBC API calls into the corresponding ODBC calls . ODBC drivers are available for almost all types of databases. JDBC can access almost all databases . Because of their common ancestry they share some important components:-

Driver manager Driver Connection Statement Metadata Resultset

Loads database drivers and manages the connections between the application and the driver Translates API calls into operations for a specific data source A session between an application and a database A SQL statement to perform a query or update operation Information about returned data , database and driver Logical set of columns and rows of data returned by executing a statement
Connection Statement ResultSet

Driver Manager


Database Database

The JDBC architecture is based on a collection of java interfaces and classes that together enable you to connect to data sources , to create and execute SQL statements and to retrieve and modify data in a database.

JDBC-ODBC Bridge Driver

The JDBC-ODBC Bridge –“sun.jdbc.odbc.jdbcodbcDriver”-is included with JDK and it enables Java applications to access data through drivers written to the ODBC standard. The driver bridge is useful for accessing data in data sources for which no pure JDBC drivers exist. The bridge works by translating the JDBC methods into ODBC function calls.

Key Features

Full Access to Metadata

The JDBC API provides metadata access that enables the development of sophisticated applications that need to understand the underlying facilities and capabilities of a specific database connection.

No Installation
A pure JDBC technology-based driver does not require special installation; it is automatically downloaded as part of the applet that makes the JDBC calls.

Database Connection Identified by URL
JDBC technology exploits the advantages of Internet-standard URLs to identify database connections. The JDBC API includes an even better way to identify and connect to a data source, using a DataSource object, that makes code even more portable and easier to maintain.

In addition to this important advantage, DataSource objects can provide connection pooling and distributed transactions, essential for enterprise database computing. This functionality is provided transparently to the programmer.

Included in the Java Platform
As a core part of the Java 2 Platform, the JDBC API is available anywhere that the platform is. This means that your applications can truly write database applications once and access data anywhere. The JDBC API is included in both the Java 2 Platform, Standard Edition (J2SE) and the Java 2 Platform, Enterprise Edition (J2EE), providing server-side functionality for industrial strength scalability.



SQL is not a procedural language. It is not used to define complex processes; we can use SQL to use commands that define and manipulate data. SQL is different from other languages. • SQL is very readable. • In SQL we always issue commands. SQL statements fall into two groups:-

● Data Defination Language (DDL) – DDL statements are used to describe the
tables and the data they contain. The subset of SQL statements used for modeling the structure (rather than the contents) of a database or cube. The DDL gives you the ability to create, modify, and remove databases and database objects. ● Data Manipulation Language (DML) – DML statements that are used to operate on data in the database. These are statements that allow you to create or alter objects (such as tables, indexes, views, and so on) in the database. The subset of SQL statements used to retrieve and manipulate data. DML can be further divided into 2 groups:● Select Statements – Statements that return a set of results. ● Everything else – Statements that don’t return a set of results. Here are some of the quries defined:-

SELECT - SQL statement used to request a selection, projection, join, query, and so
on, from a SQL Server database.

Primary key – Primary key constraints identify the column or set of columns whose
values uniquely identify a row in a table. No two rows in a table can have the same primary key value. You cannot enter a NULL value for any column in a primary key.


Insert - The Insert logical operator inserts each row from its input into the object
specified in the Argument column. To insert the data into a relation we either specify a tuple to be inserted or write a query.

Delete - The Delete logical operator deletes from an object rows that satisfy the
optional predicate in the Argument column. We can delete only whole tuples; we cannot delete values on only particular attributes.

Update - The Update logical operator updates each row from its input in the object
specified in the Argument column. It provides a way of modifying existing data in a table update statement do not return a result set, they merely modify data in the database. If a WHERE :() predicates is present, only those rows that satisfy this predicate are updated. If a SET :() predicate is present, it indicates the value to which each updated column is set. If a DEFINE :() predicate is present, this lists the values that this operator defines.

Alter - Adds or removes files, file groups, table. Modifies a table definition by
altering, adding or dropping columns and constraints, or by disabling or enabling constraints and triggers. Can also be used to modify the attributes of files and file groups, such as changing the name or size of a file.


What is an Applet?
Applets are small applications that are accessed on an internet server, transported over the internet, automatically installed and as a part of web document. It can perform arithmetic operations, display graphics, play sounds, accept user input, and create animation and interactive games.

Java applets can be used to build full featured graphical user interface. Applets can communicate over the internet to a host server and even communicate with other applets on a form.

For java to be truly successful. However, the client security has to be completely assured because of this security measures place some limitations on java applets. By default, applets cannot communicate with any server other than the originating server. Applets also cannot read or write files to the local file system.

Applet life cycle
Each applet has 4 major events in its life time:• Born or initialization state • Running state • Idle or stopped state • Dead or destroyed state

Born or initialization state: - Applet enters the initialization state when it is first
loaded. This is achieved by calling the init () method of applet class. The applet is born. If we want then we can override the initialization more than once in the applet program.

Running state - Applet enters the running state when the system calls the start ()
method of applet class. This occurs automatically after the applet is initialized. We can override the start () method to create a thread to control the applet.

Idle or stopped state - An applet becomes idle when it is stopped from running.
Stopping occurs automatically when we leave the page containing running applet. We can also do so by calling the stop () method explicitly. Stop () method can be overridden.

Dead or destroyed state - An applet is said to be dead when it is removed from
memory. This occurs automatically by invoking the destroy () method when we quit the browser.


Display state - Applet moves to the display state whenever it has to perform some
output operations on the screen. This happens immediately after the applet enters into running state. The paint () method is called to accomplish this task. Almost every applet will have a paint method. We can override this method.


Abstract Windowing Toolkit
The windowing package
The AWT is a very portable windowing library. It is a standard part of java environment and provides all the basic functionality one would expect to use in a modern windowing system .The AWT defines windows according to a class hierarchy that adds functionality and specificity with each level.

The AWT package allows you to develop window-like applications. It allows your applications to run on different windowing systems. The classes in AWT package will allow you to:• Generate Colors. • Draw graphics. • Add GUI components like push buttons, scrollbars etc to your applications. • Handle user input from mouse and keyboard. • Create Containers. • Classes like Layout Managers helps in automatically positioning a GUI object when we add it to the container.


SWING is a set of classes that provides powerful and flexible functionality. In addition with several components provided by AWT, swing supplies several exciting additions, including tabbed panes, scroll panes, trees and tables. It also changes the images as the state of any component changes. Swing is built upon the foundation of the AWT. Swing components are written entirely in Java and therefore are Platform-independent .Swing is also termed also light-weight and provide pluggable look and feel. There are 2 Swing classes that are quite important:

Jframe and Component – Jframe extends the AWT class Frame. It contains
additional features that enable it to support Swing components. JComponent extends the AWT component and Container classes. It is the top level class for all Swing components and provides Swing pluggable look and feel. Here are some of the Swing component classes:

CLASS Abstract Button Button Group Image Icon JApplet JButton JCheckBox JComboBox JLabels JRadioButton JScrollPane JTabbedPane JTextField JTree

DESCRIPTION Abstract super class for Swing buttons. Encapsulates a mutually exclusive set of buttons. Encapsulates an icon. The SWING version of APPLET. The SWING push button class. The SWING check box class. Encapsulates a combo box . The SWING version of a label. The SWING version of a radio button. Encapsulates a scrollable window. Encapsulates a tabbed window. The SWING version of Text field. Encapsulates a tree based-control.

Here are the some of the components used:

● JApplet – Applet that use SWING must be subclass of JApplet.
JApplet is rich with functionality that is not found in Applet.

● Icons – Icons are encapsulated by the Image Icon class, which paints an icon from
an image.


● JLabel – Labels are the instances of the JLabel class which extends JComponent. It
can display text or icon. These are passive controls that do not support any interaction with the user.

● JTextFields – Text field is encapsulated by the JTextComponent class which
extends JComponent. JTextField allows you to edit one line of text.

● JButton – JButton class provides the functionality of a push button. JButton allows
an icon of string to be associated with the push button.

● JCheckBox – It is supported by the JCheckBox class. It is a control that is used to
turn an option on or off.

● JTextArea - Text area is encapsulated by the JTextComponent class which
extends JComponent. JTextArea allows you to edit multiline of text.

● JRadioButton – it is supported by the JRadioButton class. It can be configured
into a group of check boxes in which only one check box can be checked at any one time.

● JComboBox – It is provided through the JComboBox class. It normally displays
one entry and can also display a drop down list that allows a user to select a different entry.

● JScrollPane – It is a component that presents a rectangular area in which a
component may be viewed. These are implemented in Swing by JScrollPane class.

● JTree - It is a component that presents a hierarchical view of data. A user has
ability to expand individual subtrees. These are implemented in Swing by JTree class.

1. It provides more powerful and more flexible components possible in AWT package. For e.g. JButton can have both image as well as text field associated with it which is not possible in awt package. 2. Unlike AWT components SWING components are not implemented by platform-specific code. Instead they are written entirely in java and therefore are platform independent. Thus term lightweight is used to describe such elements. 3. Further the Swing components can provide pluggable look and feel, which means that it is easy to substitute another appearance and behavior for an element.


Data Flow Diagram
























Although I have tried to do the best and try to do well all the things that are possible in a Payroll System, but still the system contains some of the limitations. The reason of these limitations is the time constraints. Time is the major problem. I have to deliver the project in a particular time period. That’s why I have to leave some topics that actually I want to cover, I am still working on this software and my next goal is to remove these limitations and develop a more efficient and elegant system. Limitations of the system:● this project does not support Multi-User System. ● the information of expenses is not included in this project. After removing these and other minor limitations I hope this project will be very efficient and effective.


The computer program “POST OFFICE MANAGEMENT SYSTEM” has been designed basically for the government departments, private companies and other institutions. By entering the required data one can easily generate the information about the customer and all the old records as well as other services provided through the system. As provided in the introduction we can do many required works on it but it is not based on a particular post office management system as common idea is taken into consideration while preparing this project so to implement it to any post office it may require some modifications as per the requirements. Still surely it will be provided as a great help to any post office system and will automate his/her work completely motivating them to work more efficiently.


1. J2SE Specification –

2. JAVA2 – Herbert Schildt 3. Beginning JAVA2(JDK1.5) – Ivor Horton 4. Java Programming BlackBoot – Holzner 5. Java developer Hand Book – BPB publication 6. Programming Java Swing – Shen Zokowaski 7. Java2 – CMC
8. Programming with Java -E-balaguruSwamy