0% found this document useful (0 votes)
35 views78 pages

Chapter 1 Awt (Updated) (1) COMPLETE CHAPTER

Uploaded by

harshchauhan0704
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views78 pages

Chapter 1 Awt (Updated) (1) COMPLETE CHAPTER

Uploaded by

harshchauhan0704
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 78

Chapter 1

Abstract Window Toolkit

Prepared by
Prof.Suwarna Thakre
INTRODUCTION
• AWT is an API to develop GUI or window based
applications in Java

• Java AWT components are platform dependent i.e


components are displayed according to the view of the
OS

• In java GUI can be designed using some pre-defined


classes. All these classes are defined in java.awt package
CLASS HIERARCHY FOR PANEL AND
FRAME
AWT CLASS HIERARCHY
• Component:- All the elements like buttons, text fields,
scrollbars etc are known as components.
• Container:-A container is a place wherein we add
components like text field, button, checkbox etc. There
are four types of containers available in AWT: Window,
Frame, Dialog and Panel.
AWT CLASS HIERARCHY

• Window:It has no border and no title. It uses


BorderLayout as default layout manager.

• Panel: panel is the container that doesn’t contain title


bar and menu bar.It can have other components like text
field,button etc.
DIALOG AND APPLET
• Dialog:-Dialog class has border and title.
• Frame:It is a subclass of Window and has a title bar,
menu bar, borders, and resizing corners.
• APPLET:-An applet is a Java program that can be
embedded into a web page. It runs inside the web
browser and works at client side. An applet is embedded
in an HTML page using the APPLET tag and hosted on a
web server.
The AWT supports the following
types of controls:
 Labels
 TextField
 TextArea

 Buttons

 Check boxes

 Choice

 Lists
 Menu

These controls are subclasses of Component.


ADDING CONTROLS
• To include a control in a window, we must add it to the window.
To do this, We must first create an instance of the desired control
and then add it to a window by calling add( ),which is defined by
Container. The add( ) method has several forms.
Component add(Component compObj)
Here, compObj is an instance of the control that we want to add. A
reference to compObj is returned. Once a control has been added, it
will automatically be visible whenever its parent window is
displayed.
REMOVING CONTROLS
• Sometimes you will want to remove a control from a window when
the control is no longer needed. To do this, call remove(). This
method is also defined by Container.
It has this general form:

void remove(Component obj)

Here, obj is a reference to the control we want to remove. we


can remove all controls
by calling void removeAll( ).
LABELS
• The easiest control to use is a label. A label is an object of
type Label, and it contains a string, which it displays.
Labels are passive controls that do not support any
interaction with the user. Label defines the following
constructors:
• Label( ): It version creates a blank label
• Label(String str) :It creates a label that contains the
string specified by str. This string is left-justified.
Continue…
• Label(String str, int how):It creates a label that
contains the string specified by str using the alignment
specified by how. The value of how must be one of these
three constants:
Label.LEFT,Label.RIGHT,orLabel.CENTER.
Program Using Label Class
import java.awt.*;
import java.applet.*;
public class label123 extends Applet
{
public void init()
{
Label l1=new Label("one");
Label l2=new Label("two");
add(l1);
add(l2);
}
}
/*<applet code=label123 width=200 height=200>
</applet>*/
METHODS OF LABEL CLASS:

• void setText(String str): ):- It is used to set the label.


• String getText( ):- it is used to return the current label
• void setAlignment(int how):-We can set the
alignment of the string within the label .
• int getAlignment( ):- To obtain the current alignment,
Here, how must be one of the alignment constants shown
earlier.
BUTTON
• The most widely used control is the push button. A push
button is a component that contains a label and that
generates an event when it is pressed. Constructors are:
• Button( ): It creates an empty button.
Button b1=new Button()
• Button(String str): It creates a button that contains
str as a label.
• Button b2=new Button(―login‖)
Program Using Button Class
import java.awt.*;
import java.applet.*;

/*<applet code=Button12.class width=200 height=200>


</applet>*/
public class Button12 extends Applet
{
public void init()
{
setBackground(Color.red);
setForeground(Color.blue);
Button b1 =new Button("yes");
Button b2=new Button("no");
add(b1);
add(b2);
}
}
BUTTON
Methods of button class:
• setLabel( ):It is used to set the label.
syntax: void setLabel(String str)
• getLabel( ): It is used to obtained the label
syntax: String getLabel( )
CHECKBOX
• A check box is a control that is used to turn an option on

or off. It consists of a small box that can either contain a

check mark or not. There is a label associated with each

check box that describes what option the box represents.

We change the state of a check box by clicking on it.

Check boxes can be used individually or as part of a

group. Check boxes are objects of the Checkbox class.


CHECKBOX CONSTRUCTORS
Checkbox supports these constructors:

• Checkbox( ): It creates a check box whose label is initially blank.

The state of the check box is unchecked.

Checkbox c1=new Checkbox()

• Checkbox(String str) :It creates a check box whose label is

specified by str.The state of the check box is unchecked

Chectbox c2=new Checkbox(―ENG‖);


CHECKBOX CONSTRUCTORS
• Checkbox(String str, boolean on): It allows to set the

initial state of the check box. If on is true, the check box is

initially checked; otherwise, it is cleared.

Checkbox c3=new Checkbox(―Windows/NT‖,true)

• Checkbox(String str, boolean on, CheckboxGroup

cbGroup)

• Checkbox(String str, CheckboxGroup cbGroup,


Program Using Checkbox
import java.awt.*;
import java.applet.*;

/*<applet code=check1.class width=200 height=200>


</applet>*/
public class check1 extends Applet
{
public void init()
{
Checkbox b1 =new Checkbox("c++");
Checkbox b2 =new Checkbox("java",true);
add(b1);
add(b2);
}
}
METHODS OF CHECKBOX

• boolean getState( ):To retrieve the current


state of a check box
• void setState(boolean on) :It is used to set
the state.
• String getLabel( ):-It is used to obtained the
current label associated with a check box
Checkbox Method continue..
• void setLabel(String str) :-It is used to set
the label. Here, if on is true, the box is checked.
If it is false, the box is cleared. The string passed
in str becomes the new label associated with the
invoking check box.
PART-II
Radiobutton ,choice and list
CHECKBOXGROUP
• It is possible to create a set of mutually exclusive check
boxes in which one and only one check box in the group
can be checked at any one time.
• These check boxes are often called radio buttons,
because they act like the station selector on a car radio—
only one station can be selected at any one time.
• To create radio button we can use fourth or fifth
constructor of Check box.
Constructors to create Radio
Button
• Checkbox(String str, boolean on,

CheckboxGroup cbGroup)

• Checkbox(String str, CheckboxGroup

cbGroup, boolean on)


METHODS OF CHECKBOXGROUP
• Checkbox getSelectedCheckbox( ) It is used to
determine which check box in a group is currently
selected

• void setSelectedCheckbox(Checkbox which) we


can set a check box Here, which is the check box that you
want to be selected. The previously selected check box
will be turned off.
Program to create Radiobutton
import java.awt.*;
import java.applet.*;

/*<applet code=radio1.class width=200 height=200>


</applet>*/
public class radio1 extends Applet
{
public void init()
{
CheckboxGroup cbg=new CheckboxGroup();
Checkbox b1 =new Checkbox("M",cbg,false);
Checkbox b2 =new Checkbox("F",cbg,true);
add(b1);
add(b2);}
CHOICE CONTROL
• The Choice class is used to create a pop-up list of items
• When the user clicks on it, the whole list of choices
pops up, and a new selection can be made. Each item
in the list is a string that appears as a left-justified
label in the order it is added to the Choice object.
• Choice only defines the default constructor, which
creates an empty list.
Eg. Choice()
Choice c1=new Choice();
CHOICE CLASS METHODS
To add a selection to the list, call add( ).It has this general
form:
• void add(String name)
Here, name is the name of the item being added. Items are
added to the list in the order in which calls to add( ) occur.
• String getSelectedItem( ) :It returns a string containing
the name of the item.
• int getSelectedIndex( ):-It returns the index of the item.
The first item is at index 0. By default, the first item added to
the list is selected.
CHOICE CLASS METHODS
• int getItemCount( ):To obtain the number of
items in the list.
• void select(int index) Or
void select(String name) we can set the currently
selected item using the select( ) method with either a
zero-based integer index or a string that will match a
name in the list.
Continue…
• String getItem(int index):-We can obtain
the name associated with the item at that index
by Here, index specifies the index of the desired
item
Program Using Choice class
import java.awt.*;
import java.applet.*;

/*<applet code=choice1.class
width=200 height=200>
</applet>*/
public class choice1 extends Applet
{
public void init()
{
Choice c1=new Choice();

c1.add("Win/xp");
c1.add("win/nt");
c1.add("win/2000");
add(c1);
}
}
LIST CLASS

• The List class provides a compact, multiple-choice,


scrolling selection list. Unlike the Choice object, which
shows only the single selected item in the menu, a List
object can be constructed to show any number of choices
in the visible window.
CONSTRUCTOR OF LIST CLASS
• List( ) It creates a List control that allows only one
item to be selected at any one time.
• List(int numRows):- The value of numRows
specifies the number of entries in the list that will
always be visible (others can be scrolled into view as
needed).
• List(int numRows, boolean multipleSelect):
if multipleSelect is true, then the user may select
two or more items at a time.If it is false, then only
one item may be selected.
Chapter 1
Abstract Window Toolkit

PART-III
AWT Compontes---TextField,TextArea

Prepared by
Prof.Suwarna Thakre
TextField
• The TextField class implements a single-line text-entry
area, usually called an edit control.
• Text fields allow the user to enter strings and to edit the
text using the arrow keys, cut and paste keys, and mouse
selections.
• TextField is a subclass of TextComponent.
Constructors of TextField
• TextField( ):- creates a default text field

• TextField(int numChars):-creates a text field


that
is numChars characters wide.

• TextField(String str):-It initializes the text field


with the string contained in str.

• TextField(String str, int numChars)


The fourth form initializes a text field and sets its
width.
Methods of TextField

Methods are as follows:


• String getText( ):it is used to obtain the string
currently contained in the text field.

• void setText(String str):it is used to set the


text in text field.Here, str is the new string.
Methods Of TextField
• void setEchoChar(char ch)
• boolean echoCharIsSet( )
• char getEchoChar( )
Here, ch specifies the character to be echoed.
First method specifies a single character that the
TextField will display when characters are entered
(thus, the actual characters typed will not be shown)
Program using TextField
import java.awt.*;
import java.applet.*;

/*<applet code=textfield1.class
width=200 height=200>
</applet>*/
public class textfield1 extends Applet
{
public void init()
{setLayout(new FlowLayout());
TextField c1=new TextField();
TextField c2=new TextField(20);
TextField c3=new TextField("information");
TextField c4=new TextField(" info",30);
add(c1);add(c2);add(c3);add(c4);
}
}
Program Using TextField
import java.awt.*;
import java.applet.*;

/*<applet code=textfield2.class
width=200 height=200>
</applet>*/
public class textfield2 extends Applet
{
public void init()
{
Label l=new Label("enter name");
Label l1=new Label("enter password");
TextField c1=new TextField(20);
TextField c2=new TextField(20);

c2.setEchoChar('*');
add(l);add(c1);add(l1);add(c2);
}
}
TextArea
Sometimes a single line of text input is not enough for a
given task. To handle these situations, the AWT includes a
simple multiline editor called TextArea. Following are
the constructors for TextArea:
• TextArea( )
• TextArea(int numLines, int numChars)
• TextArea(String str)
• TextArea(String str, int numLines, int
numChars)
Constructor Of TextArea
• TextArea(String str, int numLines, int
numChars, int sBars)
• Here, numLines specifies the height, in lines, of the text
area, and numChars specifies its width, in characters.
Initial text can be specified by str.
• In the fifth form we can specify the scroll bars that we
want the control to have.
• TextArea is a subclass of TextComponent
Scroll Bar Constants
sBars must be one of these values:
• SCROLLBARS_BOTH
• SCROLLBARS_NONE
• SCROLLBARS_HORIZONTAL_ONLY
SCROLLBARS_VERTICAL_ONLY
Methods Of TextArea

it supports the getText( ), setText( ),


getSelectedText( ) methods of TextField.
TextArea adds the following methods:
• void append(String str): It appends the
string specified by str to the end of the current
text.
Methods Of TextArea
• void insert(String str, int index):inserts the string
passed in str at the specified index.

• void replaceRange(String str, int startIndex, int


endIndex):-Itreplaces the characters from startIndex
to endIndex–1, with the replacement text passed in str.
Program Using TextArea
import java.awt.*;
import java.applet.*;

/*<applet code=textarea.class
width=200 height=200>
</applet>*/
public class textarea extends Applet
{
public void init()
{
String str="The TextArea control in AWT provide us multiline editor area";
TextArea ta3=new TextArea(str);
ta3.setBounds(20,30,80,120);
ta3.append(" we can append data");
ta3.insert(" is powerful",13);
add(ta3);
}
}
Menu Bars and Menus

• A top-level window can have a menu bar associated


with it. A menu bar displays a list of top-level menu
choices. Each choice is associated with a drop-down
menu.
• To create a menu bar, first create an instance of
MenuBar. This class only defines the default
constructor. Next, create instances of Menu that
will define the selections displayed on the bar.
Constructors of Menu
Following are the constructors for Menu:
• Menu( )
• Menu(String optionName)
• Menu(String optionName, boolean removable)
Here, optionName specifies the name of the menu
selection. If removable is true, the pop-up menu can be
removed and allowed to float free. Otherwise, it will
remain attached to the menu bar
MenuItem Constructors
It defines these constructors:
• MenuItem( )
• MenuItem(String itemName)
• MenuItem(String itemName,
MenuShortcut keyAccel)
Methods of Menu Class
• We can disable or enable a menu item by using the
setEnabled( ) method. Its formis shown here:
• void setEnabled(boolean enabledFlag)
If the argument enabledFlag is true, the menu
item is enabled. If false, the menu item is
disabled.
Methods of Menu class
• We can determine an item’s status by calling
isEnabled( ). This method is shown here:
• boolean isEnabled( ):It returns true if the menu item
on which it is called is enabled. Otherwise,it returns
false.
• void setLabel(String newName): we can change the
name of menu item
• String getLabel( ) we can retrieve the current name
CheckboxMenuItem
we can create a checkable menu item by using a
subclass of MenuItem called
CheckboxMenuItem. It has these constructors:
• CheckboxMenuItem( )
• CheckboxMenuItem(String itemName)
• CheckboxMenuItem(String itemName, boolean on)
Program using setEnabled Method
import java.awt.*; class framemenu2
class framemenu21 extends Frame {
{framemenu21(String s) public static void main(String arg[])
{ {
super(s); framemenu21 f=new
setSize(200,200); framemenu21("demo");
setVisible(true);
MenuBar mb= new MenuBar();
setMenuBar(mb); }
Menu m1= new Menu("file"); }
mb.add(m1);
Menu m2= new Menu("edit");
mb.add(m2);
MenuItem f1=new MenuItem("New");
MenuItem f2=new MenuItem("Open");
MenuItem e1=new MenuItem("cut");
m1.add(f1);m1.add(f2);m2.add(e1);
f2.setEnabled(false);
}}
Program using Menu
,MenuItem,CheckboxMenuItem
import java.awt.*; class framemenu
class framemenu1 extends Frame {
{framemenu1(String s) public static void main(String arg[])
{ {
super(s); framemenu1 f=new
setSize(200,200); framemenu1("demo");
setVisible(true);
MenuBar mb= new MenuBar();
setMenuBar(mb); }
Menu m1= new Menu("file"); }
mb.add(m1);
CheckboxMenuItem c=new
CheckboxMenuItem("open",true);
MenuItem m2=new
MenuItem("save");
m1.add(c);m1.add(m2);
}}
Layout Manager

• Each Container object has a layout manager associated


with it. A layout manager is an instance of any class that
implements the LayoutManager interface. The layout
manager is set by the setLayout( ) method. If no call to
setLayout( ) is made, then the default layout manager is
used. Whenever a container is resized (or sized for the
first time), the layout manager is used to position each of
the components within it.
Layout Managers
The layout manager is set by the setLayout( ) method.
Syntax:
void setLayout(LayoutManager layoutObj)
Types of layout managers for general use:
• BorderLayout
• FlowLayout
• GridLayout
• GridbagLayout
• CardLayout
FlowLayout

• FlowLayout is the default layout manager of Applet.


Components are laid out from the upper-left corner,
left to right and top to bottom. When no more
components fit on a line, the next one appears on
the next line. A small space is left between each
component, above and below, as well as left and
right.
Constructors
• FlowLayout( )
• FlowLayout(int how)
• FlowLayout(int how, int horz, int vert)
The first form creates the default layout, which centers
components and leaves five pixels of space between each
component. The second form lets you specify how each line is
aligned. Valid values for how are as follows:
FlowLayout Costants
• FlowLayout.LEFT
• FlowLayout.CENTER
• FlowLayout.RIGHT
These values specify left, center, and right alignment,
respectively. The third form allows you to specify the
horizontal and vertical space left between components in
horz and vert, respectively.
Program using FlowLayout
import java.awt.*;
import java.applet.*;
public class flowlayout extends Applet
{
public void init()
{setBackground(Color.green);
Button b1=new Button("b1");
Button b2=new Button("b2");
Button b3=new Button("b3");
Button b4=new Button("b4");
Button b5=new Button("b5");
add(b1);add(b2);add(b3);
add(b4);add(b5);
}}
/*<applet code=flowlayout width=200 height=200>
</applet>*/
FlowLayout program using constants
import java.awt.*;
import java.applet.*;
public class flowlayout1 extends Applet
{
public void init()
{setBackground(Color.green);
setLayout(new FlowLayout(FlowLayout.LEFT));
Label l1=new Label("enter your name");
Label l2=new Label("enter password");
add(l1);add(l2);
}}
/*<applet code=flowlayout1 width=200 height=200>
</applet>*/
FlowLayout program using constants
import java.awt.*;
import java.applet.*;
public class flowlayout extends Applet
{
public void init()
{setBackground(Color.green);
setLayout(new FlowLayout(FlowLayout.CENTER,40,40));
Button b1=new Button("b1");
Button b2=new Button("b2");
Button b3=new Button("b3");
Button b4=new Button("b4");
Button b5=new Button("b5");
add(b1);add(b2);add(b3);
add(b4);add(b5);
}
}
/*<applet code=flowlayout width=200 height=200>
</applet>*/
BorderLayout

The BorderLayout class implements a common layout


style for top-level windows. It 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.
constructors
• BorderLayout( ): The first form creates a default
border layout
• BorderLayout(int horz, int vert):The second allows
you to specify the horizontal and vertical space left
between components in horz and vert, respectively.
Continue…
• BorderLayout defines the following constants that
specify the regions:
• BorderLayout.CENTER
• BorderLayout.SOUTH
• BorderLayout.EAST
• BorderLayout.WEST
• BorderLayout.NORTH
Program Using BorderLayout
import java.awt.*; add(b3,BorderLayout.NORTH);
import java.applet.*;
add(b4,BorderLayout.SOUTH);
/*<applet code=border1.class add(b5,BorderLayout.CENTER);
width=200 height=200> }
</applet>*/ }
public class border1 extends Applet
{
public void init()
{
Button b1=new Button("EAST");
Button b2=new Button("WEST");
Button b3=new Button("NORTH");
Button b4=new Button("SOUTH");
Button b5=new Button("CENTER");
setLayout(new BorderLayout());
add(b1,BorderLayout.EAST);
add(b2,BorderLayout.WEST);
GridLayout

• GridLayout lays out components in a two-dimensional


grid. In GridLayout, we can define the number of rows
and columns. The constructors supported by
• GridLayout( ):-creates a single-column grid layout.
• GridLayout(int numRows,int numColumns)
creates a grid layout with the specified number of rows
and columns.
Continue..

• GridLayout(int numRows, int


numColumns, int horz, int vert)
The third form allows you to specify the horizontal
and vertical space left between components in
horz and vert, respectively.
Program using First Constructor
import java.awt.*;
import java.applet.*;
public class gridlayout extends Applet
{
public void init()
{
setLayout(new GridLayout());
Button b1=new Button("b1");
Button b2=new Button("b2");
Button b3=new Button("b3");
Button b4=new Button("b4");
Button b5=new Button("b5");
add(b1);add(b2);add(b3);
add(b4);add(b5);
}
}
/*<applet code=gridlayout width=200 height=200>
</applet>*/
Program using second constructor
import java.awt.*;
import java.applet.*;
public class gridlayout1 extends Applet
{
public void init()
{
setLayout(new GridLayout(2,3));
Button b1=new Button("b1");
Button b2=new Button("b2");
Button b3=new Button("b3");
Button b4=new Button("b4");
Button b5=new Button("b5");
add(b1);add(b2);add(b3);
add(b4);add(b5);
}
}
/*<applet code=gridlayout1 width=200 height=200>
</applet>*/
Program using Third Constructor
import java.awt.*;
import java.applet.*;
public class gridlayout2 extends Applet
{
public void init()
{
setLayout(new GridLayout(2,3,15,15));
Button b1=new Button("b1");
Button b2=new Button("b2");
Button b3=new Button("b3");
Button b4=new Button("b4");
Button b5=new Button("b5");
add(b1);add(b2);add(b3);
add(b4);add(b5);
}
}
/*<applet code=gridlayout2 width=200 height=200>
</applet>*/
Frame
• It is a subclass of Window and has a title bar, menu bar,
borders, and resizing corners.
• Here are two of Frame’s constructors:
1.Frame( )
It creates a standard window that does not contain a
title.
2.Frame(String title)
It creates a window with the title specified by title.
METHODS OF FRAME CLASS

• void setSize(int newWidth, int newHeight)


• void setSize(Dimension newSize)
The new size of the window is specified by newWidth and
newHeight, or by the width and height fields of the Dimension
object passed in newSize. The dimensions are specified in terms
of pixels.
• void setTitle(String str): -It is used to set title to the
frame.
• void setVisible(boolean on ): -Set frame is visible or not
Program Using Frame
import java.awt.*; public static void main(String args[])
public class frame extends Frame {
{ frame f1=new frame("framedemo");
frame(String s) f1.setSize(0,0);
{ f1.setVisible(true);
super(s); }
setLayout(new FlowLayout()); }
Label l1=new Label("enter name:");
TextField t1=new TextField(20);
Label l2=new Label("enter password");
TextField t2=new TextField(20);
t2.setEchoChar('*');
Button b1=new Button("submit");
add(l1);add(t1);
add(l2);add(t2);
add(b1);
}
Program Using Frame
import java.awt.*; public static void main(String args[])
public class frame extends Frame {
{ frame f1=new frame("framedemo");
frame(String s) f1.setSize(200,200);
{ f1.setVisible(true);
super(s); }
setLayout(new FlowLayout()); }
Label l1=new Label("enter name:");
TextField t1=new TextField(20);
Label l2=new Label("enter password");
TextField t2=new TextField(20);
t2.setEchoChar('*');
Button b1=new Button("submit");
add(l1);add(t1);
add(l2);add(t2);
add(b1);
}
Program Using Frame
import java.awt.*; f.add(l1);f.add(t1);
class frame2 f.add(l2);f.add(t2);
{ f.add(b1);
public static void main(String f.setSize(200,200);
args[]) f.setVisible(true);
{ }
Frame f=new Frame("frame }
demo");
f.setLayout(new FlowLayout());
Label l1=new Label("enter
name:");
TextField t1=new TextField(20);
Label l2=new Label("enter
password");
TextField t2=new TextField(20);
t2.setEchoChar('*');
Button b1=new Button("submit");

You might also like