Java abstract windows toolkit tutorial - contributed by Pradip
Abstract Windows Toolkit
Awt provides the foundation to the graphic work in Java and events. Using the
awt you can create and display button, labels, menu, combo box, textfield and
Component: most basic class in awt is java.awt.Component on
which all awt components are based like button, label, textfield etc.
Component class is derived from the Object classs. Component class consist of
large number of methods.
Container: this is the subclass of component class. It allows
other component objects to be included in it. Container is responsible for
laying out the positions of any component that it contains.
Panel: It is also a subclass of container. Panel is the
superclass for applet. Panel is the window that doesn’t have border menu etc.
and for adding other component in panel you have to use add() method.
Frame: It is the subclass of window class and it has title bar
menu bar border.
Layout manager is used for the automatic arrangement of the control within
window with the help of some type of algorithms . Each container object can
contain layout manager associated with it. Layout manager is set by using
void setLayout(LayoutManager objet) ;
object refer to desired layout manager. If you pass null; it disables the layout
manager then you have to pass the size and position manually and for that you
have to usesetBound() method.
Java has some predefined layout manager class .
FlowLayout is the default layout manager. FlowLayout implements a simple layout
style, which is similar to how words flow in a text editor. Components are laid
out from the upper-left corner, left to right and top to bottom. The
constructors for FlowLayout are shown below:
FlowLayout(int how, int horz, int vert)
The BorderLayout class has four narrow, fixed-width components at the edges and
one large area in the center. The four sides are referred to as north, south,
east, and west. The middle area is called the center.
The constructors defined by BorderLayout are shown below:
BorderLayout(int horz, int vert)
BorderLayout defines the following constants that specify the regions:
GridLayout layout is a two-dimensional grid. When you instantiate a GridLayout,
you define the number of rows and columns.
The constructors supported by GridLayout are shown below:
GridLayout(int numRows, int numColumns )
GridLayout(int numRows, int numColumns, int horz, int vert)
The CardLayout class stores several different layouts. Card layout displays the
container you pass to it as a card. You can give name to each card then you can
move from one card to another. We can prepare the other layouts and have them
hidden, ready to be activated when needed.
CardLayout provides the following two constructors:
CardLayout(int horz, int vert)
The first form creates a default card layout.
The second form allows you to specify the horizontal and vertical space left
between components in horz and vert respectively.
Use of a card layout requires a bit more work than the other layouts. The cards
are typically held in an object of type Panel. This panel must have CardLayout
selected as its layout manager.
These are some of the layouts available with layout manager.
AWT components - Some of the awt components are as follows
Labels place text on the screen
Buttons are used very oftento trigger actions and other events.
Check Boxes allow choices
Radio Buttons are a special case of check boxes.
List Boxes are ideal for interacting with arrays of Strings
Choice Boxes are similar to list Boxes but conserve Space.
Text Areas allow the user to enter data.
Scroll bars are ideal for providing access to an integer index.
Event delegation Model: Event broadcasting system in a Java is
known as event delegation model
Event : Event is an object that describes state change in
source. For handling the event in Java you have to use package
This model mainly depends on 3 things :
1)Event Source: source is an object which generate event..
2)Event Listener :classes which we are used to notify the event.
3)Event Object: classes which described the event
Event class: following are the some important event classes
used in Java
1)ActionEvent: Generate when button is pressed.
2)AdjustmentEvent : Generate when scroll bar is manipulate
3)ContainerEvent : Generate when component is added or removed from container.
4)ComponentEvent : Generate when component is move resize or hidden
5)ItemEvent: When checkbox or list box is clicked.
6)InputEvent : subclass for component event.
7)FocusEvent : When component gain or lost i/p focus .
8)KeyEvent : When keyboard i/p occurred.
9)MouseEvent : Mouse related activity happened.
10)WindowEvent : Windows activate.
Event Listener interface:
Listener are created by implementing one or more interface. When event occurs,
appropriate listener have to use some of the listener as follows
1)ActionListener : Have one method to receive action event.
2)ItemListener : Specify the method when state of item changed
3)KeyListener: Specify methods to recognized when keys are used.
4)MouseLisener : Define when the mouse is used
5)windowListener :define when window is used.
These are the some Listener which we use.
Anonymous Class: It is a class that is not assigned a name.
Anonymous inner class can facilities the writing of event handler.
/*<applet code=demo height=200 width=200>
class demo extends Applet
public void init()
Public void mousePressed(MouseEvent e)
Adapter class: Adapter class provides empty implementation of
all methods in an event listener interface. Adapter class is useful when you
want to receive and process only some of the events that are handled by
particular event listener interface.
Some of the adapter classes are as follow
Swing is the set of class which provides more powerful and flexible components
that are possible with awt. Like awt component, swing components are not
implemented by platform specific code. They are written entirely in Java. For
the use of swing component you have to use package javax.swing.*; using the
swing component look and feel of your page is better compared to awt.
|Heavy weight component
|Awt component required java.awt package
||Swing package required javax.swing package
|Awt required native code to execute/run
||Swing don’t required native code
|Look and feel is good
||Look and feel is better than awt.