0% found this document useful (0 votes)
11 views96 pages

Abstract Windowing Toolkit AWT (12 Marks) : Advance Java Programming (22517)

The document provides an overview of Java AWT (Abstract Windowing Toolkit), which is an API for developing GUI applications in Java. It discusses various components such as containers, panels, applets, frames, and controls like buttons, labels, and checkboxes, along with their methods and functionalities. The document also includes code examples for creating GUI elements using AWT.

Uploaded by

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

Abstract Windowing Toolkit AWT (12 Marks) : Advance Java Programming (22517)

The document provides an overview of Java AWT (Abstract Windowing Toolkit), which is an API for developing GUI applications in Java. It discusses various components such as containers, panels, applets, frames, and controls like buttons, labels, and checkboxes, along with their methods and functionalities. The document also includes code examples for creating GUI elements using AWT.

Uploaded by

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

Advance Java Programming(22517)

Abstract Windowing
Toolkit AWT(12 Marks)

Miss.P.S.Dungarwal
Miss.P.S.Dungarwal
Lecturer in CM Department.
1 SHHJB Polytechnic, Chandwad.
INTRODUCTION
 Java AWT (Abstract Windowing Toolkit) is an API to
develop GUI or window-based application in java.

Miss.P.S.Dungarwal
 Java AWT components are platform-dependent i.e.
components are displayed according to the view of
operating system.
 AWT is heavyweight i.e. its components uses the
resources of system.
 The java.awt package provides classes for AWT API
such as TextField, Label, TextArea, RadioButton,
CheckBox, Choice, List etc.

2
Miss.P.S.Dungarwal
3
GUI
Miss.P.S.Dungarwal
4
AWT HIERARCHY
OBJECT

 The Object class is the top most class and

Miss.P.S.Dungarwal
parent of all the classes in java by default.
 Every class in java is directly or indirectly

derived from the object class.

5
COMPONENT

 The Component is abstract class that encapsulates


all the attributes of visual component.

Miss.P.S.Dungarwal
 All User interface (UI) elements that are displayed

on screen are subclasses of Component.

Component is responsible for remembering the current


foreground and background color and the currently
selected text font.

6
METHODS OF COMPONENT CLASS

Method Description

Miss.P.S.Dungarwal
public void add(Component c) inserts a component on this
component.
public void setSize(int width, int sets the size (width and height) of the
height) component.
public void setLayout(LayoutManager defines the layout manager for the
m) component.
public void setVisible(boolean status) changes the visibility of the component,
by default false.
void remove(Component c) Remove a component
void setBounds(int x,int y, int width, int Set the location and size of single
height) component and useful only with null
layout. 7
CONTAINER

• The Container is a component in AWT that can


contain another components like buttons,
textfields, labels etc.

Miss.P.S.Dungarwal
• The classes that extends Container class are known
as container such as Frame, Dialog and Panel.
• Container is responsible for laying out any
components that it contains through the use of
layout managers.
• Methods:
• void setFont(Font f)
• void setLayout(LayoutManager mgr)

8
PANEL

 Panel class is concrete class it doesn’t add


new methods.

Miss.P.S.Dungarwal
 The Panel is the container that doesn't

contain title bar and menu bars and


Borders.
 It can have other components like button,

textfield etc.

9
AN APPLET IS PANEL IS A CONTAINER

java.lang.Object

Miss.P.S.Dungarwal
| +----java.awt.Component
| +----java.awt.Container
| +----java.awt.Panel
| +----
java.applet.Applet

10
AN APPLET

 Applet is a public class which is predefined by


java.applet.Applet

Miss.P.S.Dungarwal
 There is no main() method in Applet like
Application program. The main() method is
defined by browser or Appletviewer for
Applet.
 Life cycle methods: init, start, paint, stop,
destroy
 Applet is one type of container and subclass
of Panel.
11
TO CREATE AN APPLET
• import java.applet.*;
Import java.awt.*;

Miss.P.S.Dungarwal

• Applet tag code in comment.


• Extends Applet class
• Life cycle method
• Class must be public

12
APPLET LIFE CYCLE

Miss.P.S.Dungarwal
13
WINDOW
 The window is the container that have no
borders and menu bars.

Miss.P.S.Dungarwal
 You must use frame, dialog or another window

for creating a window.

14
FRAME
• It is subclass of Window.

Miss.P.S.Dungarwal
• The Frame is the container that contain title bar and
can have menu bars,borders, and resizing corners.
• It can have other components like button, textfield,
etc.
• Methods:
• void setTitle(String title)
• void setBackground(Color bgcolor)

15
WORKING WITH FRAME WINDOW
 Extends Frame class
 Constructor are:

Miss.P.S.Dungarwal
 Frame()
 Frame(String title)
 Setting and Getting window size:
 void setSize(int width, int height)
 void setSize(Dimension newsize)
 Showing and Hiding Frame
 void setVisible(boolean visibleFlag)

16
FRAME CLASS
 We can create stand-alone AWT based

Miss.P.S.Dungarwal
applications.
 A Frame provides main window for the GUI
application.
 There are two ways to create a Frame :

1. By instantiating Frame Class


2. By extending Frame class

17
PROGRAM USING FRAMES
import java.awt.*;
class FirstFrame{ public static void main(String args[])
{

Miss.P.S.Dungarwal
FirstFrame(){ FirstFrame f=new FirstFrame();
Frame f=new Frame(); }
Button b=new Button("click
} me");
b.setBounds(30,50,80,30);
f.add(b);
f.setSize(300,300);
f.setLayout(null);
f.setVisible(true); }
18
PROGRAM USING FRAMES

import java.awt.*; public static void main


class First extends Frame{ (String args[]){
First f=new First();
First(){ }

Miss.P.S.Dungarwal
Button b=new Button("click me"); }
b.setBounds(30,100,80,30);
add(b);
setSize(300,300);
setLayout(null);
setVisible(true);
}

19
CONTROLS
 Labels
 Buttons

Miss.P.S.Dungarwal
 Checkbox

 CheckboxGroup

 Textfield

 TextFieldArea

 ScollBar

20
LABEL
 The easiest control to use is a label.
 A label is an object of type Label, and it

Miss.P.S.Dungarwal
contains a string, which it displays.
 Labels are passive controls that do not

support any interaction with the user.

21
LABELS
• Label defines the following constructors:
• Label( )

Miss.P.S.Dungarwal
• Label(String str)
• Label(String str, int how)
• The first version creates a blank label.
• The second version creates a label that contains the
string specified by str. This string is left-justified.
• The third version 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, or Label.CENTER.
22
LABEL

 Methods

Miss.P.S.Dungarwal
 void setText(String str)
 String getText( )
 void setAlignment(int how)
 int getAlignment( )

23
CONTROLS
// Demonstrate Labels
public void init()
import java.awt.*; {

Miss.P.S.Dungarwal
import java.applet.*; Label one = new Label("One");
/* Label two = new Label("Two");
<applet code="LabelDemo" Label three = new Label("Three");
width=300 height=200> // add labels to applet window
</applet> add(one);
add(two);
*/
add(three);
public class LabelDemo }
extends Applet }
{
24
BUTTONS
 The most widely used control is the push button.
 A push button is a component that contains a label

Miss.P.S.Dungarwal
and that generates an event when it is pressed.
 Push buttons are objects of type Button.

 Button defines these two constructors:

 Button()
 Button(String str)

25
BUTTONS
• String getLabel()
• void setLabel(String str)

Miss.P.S.Dungarwal
• void setEnabled(Boolean enable)
• Void addActionListener(ActionListener l)
• void removeActionListener(ActionListener l)
• String getActionCommand()
• void setActionCommand(String Cmd)

26
Button yes, no, maybe;
// Demonstrate Buttons public void init()
import java.awt.*; {
import java.applet.*; yes = new Button("Yes");
/* no = new Button("No");

Miss.P.S.Dungarwal
<applet code="ButtonDemo" maybe = new Button(“Understand");
width=250 height=150> add(yes);
</applet> add(no);
*/ add(maybe);
public class ButtonDemo extends }
Applet public void paint(Graphics g)
{ {
String msg = ""; g.drawString(msg, 6, 100);
}
}
27
CHECK BOXES
A check box is a control that is used to turn an
option on or off.

Miss.P.S.Dungarwal
 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.

28
CHECKBOX CONSTRUCTORS:

Miss.P.S.Dungarwal
 Checkbox( )
 Checkbox(String str)
 Checkbox(String str, boolean on)
 Checkbox(String str, boolean on, CheckboxGroup
cbGroup)
 Checkbox(String str, CheckboxGroup cbGroup,
boolean on)

29
METHODS

Miss.P.S.Dungarwal
 boolean getState( )
 void setState(boolean on)

 String getLabel( )

 void setLabel(String str)

 void addItemListener(ItemListener l)

 void removeItemListener(ItemListener l)

30
public void init()
// Demonstrate check boxes. {
import java.awt.*; Win98 = new Checkbox("Windows 98/XP",
import java.applet.*; null, true);
winNT = new Checkbox("Windows
/*

Miss.P.S.Dungarwal
NT/2000");
<applet code="CheckboxDemo" solaris = new Checkbox("Solaris");
width=250 height=200> mac = new Checkbox("MacOS");
</applet> add(Win98);
*/ add(winNT);
public class CheckboxDemo extends add(solaris);
add(mac);
Applet
}
{ public void paint(Graphics g)
String msg = ""; {}
Checkbox Win98, winNT, solaris, mac; }

31
Miss.P.S.Dungarwal
32
CHECKBOX GROUP
 Itis possible to create a set of mutually exclusive
check boxes in which one and only one check box

Miss.P.S.Dungarwal
in the group can be checked at any one time.
 These check boxes are often called radio button.
 Check box groups are objects of type
CheckboxGroup.
 Only the default constructor is defined, which
creates an empty group.

33
METHODS

Checkbox getSelectedCheckbox( )

Miss.P.S.Dungarwal
void setSelectedCheckbox(Checkbox wh)

34
public void init()
{
import java.awt.*; cbg = new CheckboxGroup();
import java.applet.*;
/*
Win98 = new Checkbox("Windows 98/XP",
<applet code="CBGroup" cbg, true);
width=250 height=200> winNT = new Checkbox("Windows NT/2000",

Miss.P.S.Dungarwal
</applet> cbg, false);
*/ solaris = new Checkbox("Solaris", cbg,
public class CBGroup extends Applet
{ false);
String msg = ""; mac = new Checkbox("MacOS", cbg,
Checkbox Win98, winNT, false);
solaris, mac; add(Win98); add(winNT);
CheckboxGroup cbg; add(solaris); add(mac);}
public void paint(Graphics g)
{
msg = "Current selection: ";
msg +=
cbg.getSelectedCheckbox().getLabel();
g.drawString(msg, 6, 100); 35
}}
Miss.P.S.Dungarwal
36
CHOICE CONTROLS
 The Choice class is used to create a pop-up
list of items from which the user may choose.

Miss.P.S.Dungarwal
 Thus, a Choice control is a form of menu.

 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.

37
METHODS
void add(String name)

Miss.P.S.Dungarwal
String
getSelectedItem( )
int getSelectedIndex( )
int getItemCount( )
void select(int index)
void select(String name)
String getItem(int index)

38
import java.awt.*;
import java.applet.*; os.add("Solaris");
/* os.add("MacOS");
<applet code="ChoiceDemo" browser.add("Netscape 3.x");
width=300 height=180> browser.add("Netscape 4.x");
</applet> browser.add("Netscape 5.x");

Miss.P.S.Dungarwal
*/ browser.add("Netscape 6.x");
public class ChoiceDemo extends browser.add("Internet Explorer 4.0");
Applet browser.add("Internet Explorer 5.0");
{ browser.add("Internet Explorer 6.0");
Choice os, browser; browser.add("Lynx 2.4");
String msg = ""; browser.select("Netscape 4.x");
public void init() add(os);
{ add(browser);
os = new Choice(); }
browser = new Choice(); public void paint(Graphics g)
os.add("Windows 98/XP"); {}}
os.add("Windows NT/2000");
39
Miss.P.S.Dungarwal
40
LISTS
 The List class provides a compact, multiple-

Miss.P.S.Dungarwal
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.
 It can also be created to allow multiple

selections.
41
LIST
• List( )
• List(int numRows)

Miss.P.S.Dungarwal
• List(int numRows, boolean multipleSelect)

• The first version creates a List control that allows only one item to be
selected at any one time.
• In the second form, 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).
• In the third form, if multipleSelect is true, then the user may select two
or more items at a time.
42
METHODS

void add(String name)


void add(String name, int
index)
String getSelectedItem( )

Miss.P.S.Dungarwal
int getSelectedIndex( )
String[ ] getSelectedItems( )
int[ ] getSelectedIndexes( )
int getItemCount( )
void select(int index)
String getItem(int index)

43
Miss.P.S.Dungarwal
44
SCROLLBARS
 Scroll bars are used to select continuous values
between a specified minimum and maximum.
 Scroll bars may be oriented horizontally or

vertically.

Miss.P.S.Dungarwal
 A scroll bar is actually a composite of several

individual parts.
 slider box (or thumb) for the scroll bar.
 The slider box can be dragged by the user to a new
position, this action translates into some form of
page up and page down.

45
CONSTRUCTORS
 Scrollbar( )
 Scrollbar(int style)
 Scrollbar(int style, int iValue, int tSize, int

Miss.P.S.Dungarwal
min, int max)
• The first form creates a vertical scroll bar.
• The second and third forms allow us to specify style
Scrollbar.VERTICAL, Scrollbar.HORIZONTAL.
• In the third form, the initial value of the scroll bar is passed
in iValue. The number of units represented by the height of
the thumb is passed in tSize. The minimum and maximum
values for the scroll bar are specified by min and max.
46
METHODS

void setValues(int iValue, int tSize, int min, int max)


int getValue( )

Miss.P.S.Dungarwal
void setValue(int newValue)
int getMinimum( )
int getMaximum( )
void setUnitIncrement(int newIncr)
void setBlockIncrement(int newIncr)

47
Miss.P.S.Dungarwal
48
TEXTFIELD

 The TextField class implements a single-line


text-entry area, called an edit control.

Miss.P.S.Dungarwal
 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.

49
TEXTFIELD CONSTRUCTORS

 TextField( )

Miss.P.S.Dungarwal
 TextField(int numChars)
 TextField(String str)
 TextField(String str, int numChars)

50
TEXTFIELD METHODS
 String getText( )
 void setText(String str)

Miss.P.S.Dungarwal
 String getSelectedText( )
 void select(int startIndex, int

endIndex)
 boolean isEditable( )
 void setEditable(boolean canEdit)
 void setEchoChar(char ch)
 boolean echoCharIsSet( ) 51

 char getEchoChar( )
Miss.P.S.Dungarwal
52
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:

Miss.P.S.Dungarwal
 TextArea( )
 TextArea(int numLines, int numChars)
 TextArea(String str)
 TextArea(String str, int numLines, int numChars)
 TextArea(String str, int numLines, int numChars, int
sBars)

sBars must be one of these values:


SCROLLBARS_BOTH,
SCROLLBARS_NONE,SCROLLBARS_HORIZONTAL_ONLY, 53
SCROLLBARS_VERTICAL_ONLY
METHODS
 TextArea is a subclass of TextComponent.
 Therefore, it supports the getText( ), setText( ),

getSelectedText( ), select( ), isEditable( ), and


setEditable( ) methods as of TextField.

Miss.P.S.Dungarwal
 TextArea adds the following methods:
 void append(String str)
 void insert(String str, int index)

 void replaceRange(String str, int startIndex,

int endIndex)

54
Miss.P.S.Dungarwal
55
LAYOUT MANAGERS
 Layout means arranging the components within
the container.
 The task of lay outing can be done automatically

Miss.P.S.Dungarwal
by the Layout manager.
 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.
56
 The setLayout( ) method has the following
general form:

Miss.P.S.Dungarwal
 void setLayout(LayoutManager layoutObj)

 Here, layoutObj is a reference to the desired

layout manager.
 If we wish to disable the layout manager and

position components manually, pass null for


layoutObj.

57
LAYOUTMANAGER
 LayoutManager is an interface that is
implemented by all the classes of layout
managers. There are following classes that

Miss.P.S.Dungarwal
represents the layout managers:
 FlowLayout

 BorderLayout

 GridLayout

 CardLayout

 GridBagLayout

58
FLOWLAYOUT
 FlowLayout is the default layout manager.
 FlowLayout implements a simple layout style,

Miss.P.S.Dungarwal
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.


 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. 59
FLOWLAYOUT CONSTRUCTORS
 FlowLayout( )
 FlowLayout(int how)
 FlowLayout(int how, int horz, int vert)

Miss.P.S.Dungarwal
 The first is default, which centers components
and leaves five pixels of space between each
component.
 The second form lets us specify how each line is
aligned. Valid values for how are as follows:
 FlowLayout.LEFT
 FlowLayout.CENTER
 FlowLayout.RIGHT
 The third form allows us to specify the
horizontal and vertical space left between 60
components
FLOWLAYOUT METHODS
 int getAlignment()
 int getHgap()

Miss.P.S.Dungarwal
 int getVgap()
 int setAlignment(int align)
 int setHgap(int hgap)
 int setVgap(int vgap)

61
public class FlowLayoutDemo extends Applet
{
Checkbox Win98, winNT, solaris, mac;
public void init()
{

Miss.P.S.Dungarwal
Win98 = new Checkbox("Windows 98/XP", null,
true);
winNT = new Checkbox("Windows NT/2000");
solaris = new Checkbox("Solaris");
mac = new Checkbox("MacOS");
setLayout(new
FlowLayout(FlowLayout.CENTER));
add(Win98); add(winNT);add(solaris);add(mac);
62
}}
Miss.P.S.Dungarwal
63
BORDERLAYOUT
 The BorderLayout class implements a
common layout style for top-level windows.

Miss.P.S.Dungarwal
 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.

64
BORDERLAYOUT CONSTRUCTORS
 BorderLayout( )
 BorderLayout(int horz, int vert)

Miss.P.S.Dungarwal
 The first form creates a default border layout.
 The second allows us to specify the

horizontal and vertical space left between


components in horz and vert, respectively.

65
BORDERLAYOUT
• BorderLayout defines the following constants that
specify the regions:
• BorderLayout.CENTER

Miss.P.S.Dungarwal
• BorderLayout.SOUTH
• BorderLayout.EAST
• BorderLayout.WEST
• BorderLayout.NORTH
• To add components, we use these constants with the
following form of add( ), which is defined by
Container:
• void add(Component compObj, Object region);
• Here, compObj is the component to be added, and
66
region specifies where the component will be added.
public class BorderLayoutDemo extends Applet {
public void init() {
setLayout(new BorderLayout());
add(new Button("This is across the top."),
BorderLayout.NORTH);
add(new Label("The footer message."),
BorderLayout.SOUTH);

Miss.P.S.Dungarwal
add(new Button("Right"), BorderLayout.EAST);
add(new Button("Left"), BorderLayout.WEST);
String msg = "The reasonable man adapts himself to the
world;\n" +
"the unreasonable one persists in trying to adapt the world to
himself.\n" +
"Therefore all progress depends on the unreasonable man.\n\n"
+ " - George Bernard Shaw\n\n";
add(new TextArea(msg), BorderLayout.CENTER);
}
} 67
Miss.P.S.Dungarwal
68
GRIDLAYOUT
 GridLayout lays out components in a two-
dimensional grid.

Miss.P.S.Dungarwal
 When we instantiate a GridLayout, we define

the number of rows and columns.

69
GRIDLAYOUT CONSTRUCTORS
 GridLayout( )
 GridLayout(int numRows, int numColumns )

 GridLayout(int numRows, int numColumns, int horz,

Miss.P.S.Dungarwal
int vert)
 The first form creates a single-column grid layout.

 The second creates a grid layout with specified

number of rows and columns.


 Either numRows or numColumns can be zero.

 Specifying numRows as zero allows for unlimited-

length columns.
 Specifying numColumns as zero allows for

unlimited-length rows. 70
public class GridLayoutDemo extends Applet {
static final int n = 4;

Miss.P.S.Dungarwal
public void init(){
setLayout(new GridLayout(n, n));
setFont(new Font("SansSerif", Font.BOLD, 24));
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
int k = i * n + j;
if(k > 0)
add(new Button("" + k));
} }}} 71
Miss.P.S.Dungarwal
72
CARDLAYOUT
 The CardLayout class is unique among the other
layout managers in that it stores several different
layouts.

Miss.P.S.Dungarwal
 Each layout can be thought of as being on a

separate index card in a deck that can be shuffled


so that any card is on top at a given time.
 This can be useful for user interfaces with optional

components that can be dynamically enabled and


disabled upon user input.
 We can prepare the other layouts and have them

hidden, ready to be activated when needed.


73
 CardLayout provides these two constructors:
 CardLayout( )
 CardLayout(int horz, int vert)

Miss.P.S.Dungarwal
 The first form creates a default card layout.
 The second form allows us to specify the

horizontal and vertical space left between


components.

74
METHODS
 void add(Component panelObj, Object name);
 Here name is a string that specifies the name of

Miss.P.S.Dungarwal
the card whose panel is specified by panelObj.
After we have created a deck, our program
activates a card by calling one of the following
methods:
 void first(Container deck)
 void last(Container deck)
 void next(Container deck)
 void previous(Container deck)
 void show(Container deck, String cardName)
 deck is a reference to the container (usually a
75
panel) that holds the cards, and cardName is the
name of a card.
Miss.P.S.Dungarwal
76
• // Demonstrate CardLayout.
import java.awt.*;
import java.awt.event.*;
public class CardLayoutExample extends Frame i
mplements ActionListener{
CardLayout card;

Miss.P.S.Dungarwal
Button b1,b2,b3;
CardLayoutExample(){
card=new CardLayout(40,30);
setLayout(card);

77
b1=new Button("Apple");
b2=new Button("Boy");
b3=new Button("Cat");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
add(b1,”card1”); add(b2,”card2”); add(b3,”card3”); }

Miss.P.S.Dungarwal
public void actionPerformed(ActionEvent e) {
card.next(this);
}
public static void main(String[] args) {
CardLayoutExample cl=new CardLayoutExample();
cl.setSize(400,400);
cl.setVisible(true);
} }
78
Miss.P.S.Dungarwal
79
GRIDBAGLAYOUT
 Each GridBagLayout object maintains a dynamic
rectangular grid of cells, with each component
occupying one or more cells, called its display

Miss.P.S.Dungarwal
area.
 Each component managed by a grid bag layout

is associated with an instance of


GridBagConstraints that specifies how the
component is laid out within its display area.

80
 For customize a GridBagConstraints object by
setting one or more of its instance variables:
 gridx, gridy: Specifies the cell at the upper left of

the component's display area, where the upper-

Miss.P.S.Dungarwal
left-most cell has address gridx = 0, gridy = 0.
 gridwidth, gridheight: Specifies the number of

cells in a row (for gridwidth) or column (for


gridheight) in the component's display area. The
default value is 1.
 fill: Used when the component's display area is

larger than the component's requested size to


determine whether (and how) to resize the
component. 81
import java.awt.*;
import java.util.*;
import java.applet.Applet;
public class GridBagEx1 extends Applet {
protected void makebutton(String name,
GridBagLayout gridbag,

Miss.P.S.Dungarwal
GridBagConstraints c) {
Button button = new Button(name);
gridbag.setConstraints(button, c);
add(button);
}
public void init() {
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setLayout(gridbag);
82
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
makebutton("Button1", gridbag, c);
makebutton("Button2", gridbag, c);
makebutton("Button3", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; //end row

Miss.P.S.Dungarwal
makebutton("Button4", gridbag, c);
c.weightx = 0.0; //reset to the default
makebutton("Button5", gridbag, c); //another row
}
public static void main(String args[]) {
Frame f = new Frame("GridBag Layout Example");
GridBagEx1 ex1 = new GridBagEx1();
ex1.init(); f.add("Center", ex1); f.pack();
f.resize(f.preferredSize());
f.show(); }}
83
MENU BARS AND MENUS
 A menu bar displays a list of top-level menu
choices. Each choice is associated with a
dropdown menu.

Miss.P.S.Dungarwal
 This concept is implemented in Java by the

following classes:
 MenuBar, Menu, and MenuItem.
 In general, a menu bar contains one or more
Menu objects. Each Menu object contains a list of
MenuItem objects. Each MenuItem object
represents something that can be selected by the
user.

84
Miss.P.S.Dungarwal
85
 MenuBar Class Defines only default constructor.
 Menu Class Constructors
 Menu( )
 Menu(String optionName)

Miss.P.S.Dungarwal
 Menu(String optionName, boolean removable)
 Here, optionName specifies the name of the menu
selection.
 Individual menu items constructors:
 MenuItem( )
 MenuItem(String itemName)
 MenuItem(String itemName, MenuShortcut keyAccel)

86
METHODS
 Disable or enable a menu item by using:
 voidsetEnabled(boolean enabledFlag)
 boolean isEnabled( )

Miss.P.S.Dungarwal
 Label set and get using:
 void setLabel(String newName)
 String getLabel( )
 Checkable menu item by using a subclass of
MenuItem called CheckboxMenuItem. :
 CheckboxMenuItem( )
 CheckboxMenuItem(String itemName)
 CheckboxMenuItem(String itemName, boolean on)

87
METHODS
 Status about checkable MenuItem:
 boolean getState( )

Miss.P.S.Dungarwal
 void setState(boolean checked)
 For add MenuItem:
 MenuItem add(MenuItem item)
 For add MenuBar
 Menu add(Menu menu)
 To get Item from Menu:
 Object getItem( )

88
import java.awt.*; menu.add(i1);
class MenuExample menu.add(i2); menu.add(i3);
{ submenu.add(i4);
MenuExample(){
submenu.add(i5);
Frame f= new Frame("Menu Example");
menu.add(submenu);
MenuBar mb=new MenuBar(); mb.add(menu);

Miss.P.S.Dungarwal
Menu menu=new Menu("Menu"); f.setMenuBar(mb);
Menu submenu=new Menu("Sub Menu"); f.setSize(400,400);
f.setLayout(null);
MenuItem i1=new MenuItem("Item 1");
f.setVisible(true);
MenuItem i2=new MenuItem("Item 2");
}
MenuItem i3=new MenuItem("Item 3");
MenuItem i4=new MenuItem("Item 4");
public static void main
MenuItem i5=new MenuItem("Item 5");
(String args[]) {
new MenuExample();
} }
89
Miss.P.S.Dungarwal
90
DIALOGBOX
 Dialog boxes are primarily used to obtain user input.
 They are similar to frame windows, except that

dialog boxes are always child windows of a top-level

Miss.P.S.Dungarwal
window.
 Dialog boxes don’t have menu bars.

 In other respects, dialog boxes function like frame

windows.
 Dialog boxes may be modal or modeless.

 When a modal dialog box is active, all input is

directed to it until it is closed.


 When a modeless dialog box is active, input focus

can be directed to another window in your program.91


 Constructors:.
 Dialog(Frame parentWindow, boolean mode)
 Dialog(Frame parentWindow, String title, boolean

Miss.P.S.Dungarwal
mode)
 To create Dialog Box:
 Create Frame or Applet
 Create another class which extends Dialog class.
 Call this new class from Frame/Applet class.
 In constructor of Extended Dialog class, use super
method and pass vales to constructor of Dialog

92
import java.awt.*;
import java.awt.event.*;
public class DialogExample {
private static Dialog d;
DialogExample() {
Frame f= new Frame();
d = new Dialog(f , "Dialog Example", true);

Miss.P.S.Dungarwal
d.setLayout( new FlowLayout() );
Button b = new Button ("OK");
b.addActionListener ( new ActionListener()
{ public void actionPerformed( ActionEvent e )
{ DialogExample.d.setVisible(false); }
});
d.add( new Label ("Click button to continue."));
d.add(b); d.setSize(300,300);
d.setVisible(true); }
93
FILEDIALOG
 Java provides a built-in dialog box that lets the user
specify a file.
 To create a file dialog box, instantiate an object of

Miss.P.S.Dungarwal
type FileDialog.
 Constructor:

 FileDialog(Frame parent, String boxName)


 FileDialog(Frame parent, String boxName, int
how)
 FileDialog(Frame parent)
 Int how: FileDialog.LOAD, FileDialog.SAVE

 Methods:

 String getDirectory( ) 94

 String getFile( )
import java.awt.*;
class SampleFrame extends Frame
{
SampleFrame(String title){
super(title); }}

Miss.P.S.Dungarwal
class FileDialogDemo
{public static void main(String args[]){
Frame f = new SampleFrame("File Dialog Demo");
f.setVisible(true);
f.setSize(100, 100);
FileDialog fd = new FileDialog(f, "File Dialog");
fd.setVisible(true);
}} 95
Miss.P.S.Dungarwal
96

You might also like