tl19 awt
TRANSCRIPT
![Page 1: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/1.jpg)
Programming in JAVA
Topic: GUI Basics (AWT)
![Page 2: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/2.jpg)
Introduction
• AWT is a java API that is used to develop GUI applications in
Java.
• API is a collection of classes and interfaces that provide the
basic infrastructure or core functionalities for developing
specific type of application.
• There are three types of GUI classes:
1) Container classes
2) Component classes
3) Helper classes
![Page 3: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/3.jpg)
Component Classes
• An instance of Component can be displayed on the screen.
• Component is the root class of all the user-interface classes
including container classes, and JComponent is the root class of
all the lightweight Swing components.
• Button, Label, TextField etc.
![Page 4: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/4.jpg)
Container Classes
• An instance of Container can hold instances of Component.
• Container classes are GUI components that are used to contain
other GUI components.
• Window, Panel, Applet, Frame, and Dialog are the container
classes for AWT components.
![Page 5: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/5.jpg)
Helper Classes
• The helper classes, such as Graphics, Color, Font, FontMetrics,
Dimension, and LayoutManager, are not subclasses of
Component.
• They are used to describe the properties of GUI components,
such as graphics context, colors, fonts, and dimension etc.
![Page 6: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/6.jpg)
AWT Classes
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Class Description
AWTEvent Encapsulates AWT events
Button Creates a push button control
Canvas A blank, semantics-free window
Checkbox Creates a check box control
CheckboxGroup Creates a group of check box controls
Color Manages colors in a portable, platform-independent fashion
Font Encapsulates a type font
Frame Creates a standard window that has a title bar, resize corners,
and a menu bar
Graphics Encapsulates the graphics context. This context is used by the
various output methods to display output in a window.
![Page 7: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/7.jpg)
AWT classes
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Class Description
TextField Creates a single-line edit control
TextArea Creates a multiline edit control
Window Creates a window with no frame, no menu bar, and no title
Scrollbar Creates a scroll bar control
MenuItem Creates a menu item
Menu Creates a pull-down menu
MenuBar Creates a menu bar
MenuShortcut Encapsulates a keyboard shortcut for a menu item
ScrollPane A container that provides horizontal and/or vertical scroll bars
for another component
![Page 8: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/8.jpg)
Component Class Hierarchy of AWT
Component
Container
(Non-Container)
Window Panel
Frame Applet
Button Label Text Field Check-Box Text Area etc.
![Page 9: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/9.jpg)
• Component is an abstract class that describes the basic
functionality supported by all AWT components.
• Container is a sub-class of Component that adds the
functionality of containership to a component.
• A Container component can contain another container or non-
container components.
• Window and Panel are two non-abstract sub-classes of
Container.
![Page 10: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/10.jpg)
Component Cont…
• Panel represents a rectangular region that does not have a
border and title bar.
• Window is a Panel with border and title bar.
• Window can independently exist whereas panel can’t.
• Frame is a sub-class of Window .
• Button, Label, TextField, CheckBox etc. are non-container
components.
![Page 11: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/11.jpg)
Component• Component is an abstract class that encapsulates all of the
attributes of a visual component.
• All user interface elements that are displayed on the screen and
that interact with the user are subclasses of Component.
• It defines over a hundred public methods that are responsible for
managing events, such as mouse and keyboard input, positioning
and sizing the window, and repainting.
• A Component object is responsible for remembering the current
foreground and background colors and the currently selected text
font.
![Page 12: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/12.jpg)
Commonly Used Methods of Component Class
• setBackground(): used to change the background color of a
component.
public void setBackground ( Color c)
Note: color is a helper class.
• setForeground(): used to change the foreground color of a
component.
public void setForeground ( Font obj)
• Font is represented by java.awt.Font.
public Font (String FontName, int Style, int Size)
e.g. : Font f = (“Times New Roman”, Font.BOLD, 20);
![Page 13: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/13.jpg)
• setBounds(): used to specify size and position of component in
a container.
public void setBounds (int left, int top, int width, int height)
![Page 14: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/14.jpg)
Container• Container class is a subclass of Component.
• It has additional methods that allow other Component objects to be
nested within it.
• Other Container objects can be stored inside of a Container (since
they are themselves instances of Component).
• This makes for a multileveled containment system.
• A container is responsible for laying out (that is, positioning) any
components that it contains. It does this through the use of various
layout managers.
![Page 15: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/15.jpg)
Commonly used methods of Container Class
• add(): used to add components to a container.
public void add (Component c)
• setSize(): used to specify the size of a container.
public void setSize(int width, int height)
• setLayout(): used to specify the layout manager for a container.
public void setLayout (LayoutManager mgr)
• setVisible(boolean visibility): used to set the visibility of container.
public void setVisible (boolean visibility)
![Page 16: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/16.jpg)
Panel• Panel is a window that does not contain a title bar, menu bar, or
border.
• The screen output of an applet is drawn on the surface of a Panel
object. But it is not visible when applet is run inside a browser.
• When we run an applet using an applet viewer, the applet viewer
provides the title and border.
• Other components can be added to a Panel object by its add( )
method (inherited from Container).
• We can position and resize the components of a panel manually
using the setLocation( ), setSize( ), setPreferredSize( ), or
setBounds( ) methods defined by Component.
![Page 17: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/17.jpg)
Window
• Window class creates a top-level window.
• A top-level window is not contained within any other object; it
sits directly on the desktop.
• Generally, we won’t create Window objects directly. Instead, we
use a subclass of Window called Frame.
![Page 18: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/18.jpg)
Frame• It is a subclass of Window and has a title bar, menu bar, borders,
and resizing corners.
• Frame encapsulates what is commonly thought of as a
“window.”
![Page 19: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/19.jpg)
FrameConstructor:
public Frame ()
public Frame (String Title)
Methods:
public String getTitle ()
public void setTitle (String Title)
public void setVisibile(boolean Visibility)
![Page 20: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/20.jpg)
Label• Used to describe other components or to display information on
a container.
Constructors:
public Label()
public Label (String s)
Methods:
• public String getText(): used to display the text on a Label.
• public void setText(): used to change the text.
![Page 21: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/21.jpg)
Button• Buttons are used to initiate action.
Constructor:
public Button ()
public Button (String Name)
Methods:
public String getLabel()
public void setLabel(String Name)
![Page 22: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/22.jpg)
TextField• Used to receive input and display the output/result.
Constructor:
public TextField ()
public TextField (String Text)
public TextField (int No_of Chars)
Methods:
public String getText ()
public void setText (String Text)
public void setEchoChar ( char x)
public void setEditable (boolean editability)
public boolean isEditable()
![Page 23: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/23.jpg)
TextArea• Used to display multiple lines of output/result.
Constructor:
public TextArea()
public TextArea (String Text)
public TextArea (int numLines, int numChars)
public TextArea (String str, int numLines, int numChars, int sBars)
sBars Constants: (SCROLLBARS_NONE, SCROLLBARS_BOTH,
SCROLLBARS_HORIZONTAL_ONLY, SCROLLBARS_VERTICAL_ONLY)
Methods:
Supports all the methods of TextArea.
void append(String str)
void insert(String str, int index)
void replaceRange(String str, int startIndex, int endIndex)
![Page 24: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/24.jpg)
Checkbox and RadioButtons• Checkbox and CheckboxGroup classes are used to create
RadioButtons.
public Checkbox (String Text)
public Checkbox (String Text, Boolean State)
public Checkbox (String Text, Boolean State,
CheckboxGroup cbg )
public Checkbox (String Text, CheckboxGroup cbg, Boolean
State, )
![Page 25: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/25.jpg)
Methods
• boolean getState( )
• void setState(boolean on)
• String getLabel( )
• void setLabel(String str)
![Page 26: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/26.jpg)
CheckboxGroup• Used to create a set of mutually exclusive check boxes in which
one and only one check box in the group can be checked at a
time.
Constructor:
public CheckboxGroup()
Methods:
Checkbox getSelectedCheckbox( )
void setSelectedCheckbox(Checkbox which)
![Page 27: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/27.jpg)
Menu Bars and Menus• Menu is implemented in AWT by the following classes:
MenuBar, Menu, and MenuItem.
• A menu bar displays a list of top-level menu choices. Each choice is associated with a drop-down menu.
• 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.
• Since Menu is a subclass of MenuItem, a hierarchy of nested submenus can be created.
• Checkable menu items are menu options of type CheckboxMenuItem and will have a check mark next to them when they are selected.
![Page 28: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/28.jpg)
Creating Menus• 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. Following are the constructors for Menu:
Menu( ) throws HeadlessException
Menu(String optionName) throws HeadlessException
• Individual menu items are of type MenuItem. It defines these constructors:
MenuItem( ) throws HeadlessException
MenuItem(String itemName) throws HeadlessException
MenuItem(String itemName, MenuShortcut keyAccel) throws HeadlessException
![Page 29: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/29.jpg)
• We can disable or enable a menu item by using the setEnabled( ) method.
void setEnabled (boolean enabledFlag)
• If the argument enabledFlag is true, the menu item is enabled. If false, the menu item is disabled.
• We can determine an item’s status by calling isEnabled( ).
boolean isEnabled( )
• isEnabled( ) returns true if the menu item on which it is called is enabled. Otherwise, it returns false.
• We can change the name of a menu item by calling setLabel( ). We can retrieve the current name by using getLabel( ).
void setLabel(String newName)
String getLabel( )
![Page 30: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/30.jpg)
CheckboxMenuItem• We can create a checkable menu item by using a subclass of
MenuItem called CheckboxMenuItem.
CheckboxMenuItem( ) throws HeadlessException
CheckboxMenuItem(String itemName) throws HeadlessException
CheckboxMenuItem(String itemName, boolean on) throws HeadlessException
• We can obtain the status of a checkable item by calling getState( ). You can set it to a known state by using setState( ).
boolean getState( )
void setState(boolean checked)
Note: HeadlessException is Thrown when code that is dependent on a keyboard, display, or mouse is called in an environment that does not support a keyboard, display, or mouse.
![Page 31: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/31.jpg)
Choice• The Choice class presents a pop-up menu of choices.
• The current choice is displayed as the title of the menu.
Choice c = new Choice(); // Only default constructor available
c.add(“B. Tech.”); c.add(“BCA”); c.add(“B. Arch.”);
Methods:
String getItem(int index)
int getItemCount()
String getSelectedItem()
int getSelectedIndex()
![Page 32: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/32.jpg)
List• The List class provides a compact, multiple-choice, scrolling
selection list.
Constructors:
List( )
List(int numRows)
List(int numRows, boolean multipleSelect)
Methods:
void add(String name)
void add(String name, int index)
String getSelectedItem() String[] getSelectedItems()
int getSelectedIndex() int[] getSelectedIndexes()
![Page 33: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/33.jpg)
Layout Manager classes
LayoutManager class Description
BorderLayout The border layout manager. Border layouts use five
components: North, South, East, West, and Center
CardLayout The card layout manager. Card layouts emulate index
cards. Only the one on top is showing.
GridLayout The grid layout manager. Grid layout displays
components in a two-dimensional grid.
FlowLayout The flow layout manager. Flow layout positions
components left to right, top to bottom.
![Page 34: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/34.jpg)
FlowLayout• Arranges the components in left to right, top to bottom fashion.
• It is the default layout manager for Panel.
public FlowLayout ()
public FlowLayout (int alignment)
public FlowLayout (int alignment, int H_Gap, int V_Gap)
• Alignments are specified as:
FlowLayout.LEFT
FlowLayout.RIGHT
FlowLayout.CENTER
• By default 5 pixels is used as horizontal and vertical gap between components.
FlowLayout fl = new FlowLayout (FlowLayout.CENTER, 30, 20);
frm.setLayout(fl);
![Page 35: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/35.jpg)
GridLayout• It divides a container into a grid of specified rows and columns.
Each to display one component.
• Size of component is changed according to the size of the cell.
public GridLayout (int row, int column)
public GridLayout (int row, int column, int H_Gap, int V_Gap)
GridLayout gl = new GridLayout (3, 4);
frm.setLayout (gl);
GridLayout gl1 = new GridLayout (3, 4, 20, 30);
frm.setLayout (gl2);
![Page 36: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/36.jpg)
BorderLayout• It divides the container into 5 regions ( NORTH, SOUTH,
EAST, WEST and CENTER).
• It is the default layout manager for Window.
public BorderLayout()
• To add a component at a specific region, following method is
used:
public void add ( Component c, int Region)
Example:
Button btn = new Button(“OK”);
frm.add( btn, BorderLayout.EAST);
![Page 37: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/37.jpg)
CardLayout• It is used to arrange containers in the form of deck of cards.
Methods:
first() / last()/ next()/ previous(): is used to make the first/ last/
next/ previous card visible.
show(): is used to make a specified card visible.
public void show ( Container deck, String CardName)
• To give a name to the container while it is added to the deck:public void add ( Container card, String CardName)
![Page 38: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/38.jpg)
Steps to Create a Frame-based Interface
1) Create a Frame object.
2) Create Component Objects.
3) Add the Component objects to Frame.
4) Set the size of the Frame and make it visible.
![Page 39: tL19 awt](https://reader030.vdocuments.site/reader030/viewer/2022032714/55ab10e71a28ab25698b4628/html5/thumbnails/39.jpg)
My First Applicationimport java.awt.*;
class MyFirstApp
{
static TextField t1,t2,t3; static Button b1;
public static void main(String arr[])
{
Frame f = new Frame ("My Calculator");
Label l1 = new Label (“1st Number"); Label l2 = new Label (“2nd Number");
Label l3 = new Label ("Result");
t1 = new TextField(20); t2 = new TextField(20);
t3 = new TextField(20); t3.setEditable(false);
b1 = new Button("Add");
f.setLayout(new FlowLayout());
f.add(l1); f.add(t1); f.add(l2); f.add(t2); f.add(l3); f.add(t3); f.add(b1);
f.setSize(200,250); f.setVisible(true);
}
}