Java Event-And-Gui-Programming
Java Event-And-Gui-Programming
AWT provides various components like button, label, checkbox, etc. used as objects inside a
Java Program.
AWT components use the resources of the operating system, i.e., they are platform-
dependent, which means, component's view can be changed according to the view of the
operating system. The classes for AWT are provided by the Java.awt package for various
AWT components.
Classification of Events
Foreground Events
Background Events
Types of Events
1. Foreground Events
Foreground events are the events that require user interaction to generate, i.e., foreground
events are generated due to interaction by the user on components in Graphic User Interface
(GUI). Interactions are nothing but clicking on a button, scrolling the scroll bar, cursor
moments, etc.
2. Background Events
Events that don’t require interactions of users to generate are known as background events.
Examples of these events are operating system failures/interrupts, operation completion,
etc.
Event Handling: It is a mechanism to control the events and to decide what should
happen after an event occur. To handle the events, Java follows the Delegation Event
model.
Source: Events are generated from the source. There are various sources like buttons,
checkboxes, list, menu-item, choice, scrollbar, text components, windows, etc., to
generate events.
Listeners: Listeners are used for handling the events generated from the source. Each
of these listeners represents interfaces that are responsible for handling events.
To perform Event Handling, we need to register the source with the listener.
Note: As Interfaces contains abstract methods which need to implemented by the registered
class to handle events.
Different interfaces consists of different methods which are specified below.
ActionListener
actionPerformed()
AdjustmentListener
adjustmentValueChanged()
componentResized()
componentShown()
componentMoved()
ComponentListener
componentHidden()
componentAdded()
ContainerListener
componentRemoved()
focusGained()
FocusListener
focusLost()
ItemListener
itemStateChanged()
keyTyped()
keyPressed()
KeyListener
keyReleased()
mousePressed()
mouseClicked()
mouseEntered()
mouseExited()
MouseListener
mouseReleased()
mouseMoved()
MouseMotionListener
mouseDragged()
MouseWheelListener
mouseWheelMoved()
TextListener
textChanged()
windowActivated()
windowDeactivated()
windowOpened()
windowClosed()
windowClosing()
windowIconified()
WindowListener
windowDeiconified()
Any program that uses GUI (graphical user interface) such as Java application written for
windows, is event driven. Event describes the change in state of any object.
Listeners : A listener is an object that listens to the event. A listener gets notified
when an event occurs.
ComponentEvent generated when component is hidden, moved, resized or set visible ComponentEventListener
A source generates an Event and send it to one or more listeners registered with the source.
Once event is received by the listener, they process the event and then return. Events are
supported by a number of Java packages, like java.util, java.awt and java.awt.event.
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.applet.*;
import java.awt.event.*;
import java.awt.*;
String msg="";
addKeyListener(this);
showStatus("KeyPressed");
showStatus("KeyRealesed");
msg = msg+k.getKeyChar();
repaint();
HTML code:
</applet>
BASICS OF GUI
Java AWT is an API that contains large number of classes and methods to create and manage
graphical user interface ( GUI ) applications. The AWT was designed to provide a common
set of tools for GUI design that could work on a variety of platforms. The tools provided by
the AWT are implemented using each platform's native GUI toolkit, hence preserving the
look and feel of each platform. This is an advantage of using AWT. But the disadvantage of
such an approach is that GUI designed on one platform may look different when displayed on
another platform that means AWT component are platform dependent.
AWT is the foundation upon which Swing is made i.e Swing is a improved GUI API that
extends the AWT. But now a days AWT is merely used because most GUI Java programs are
implemented using Swing because of its rich implementation of GUI controls and light-
weighted nature.
The hierarchy of Java AWT classes are given below, all the classes are available
in java.awt package.
Component class
Component class is at the top of AWT hierarchy. It is an abstract class that encapsulates all
the attributes of visual component. A component object is responsible for remembering the
current foreground and background colors and the currently selected text font.
Container
Container is a component in AWT that contains another component like button, text field,
tables etc. Container is a subclass of component class. Container class keeps track of
components that are added to another component.
Panel
Panel class is a concrete subclass of Container. Panel does not contain title bar, menu bar or
border. It is container that is used for holding components.
Window class
Window class creates a top level window. Window does not have borders and menubar.
Frame
Frame is a subclass of Window and have resizing canvas. It is a container that contain
several different components like button, title bar, textfield, label etc. In Java, most of the
AWT applications are created using Frame window. Frame class has two different
constructors,
Creating a Frame
import java.awt.*;
Testawt()
package testawt;
import java.awt.*;
import java.awt.event.*;
public Testawt()
Points to Remember:
o setVisible(true);
2. When you create other components like Buttons, TextFields, etc. Then you need to
add it to the frame by using the method - add(Component's Object);
3. You can add the following method also for resizing the frame - setResizable(true);
AWT Button
In Java, AWT contains a Button Class. It is used for creating a labelled button which can
perform an action.
Example:
Lets take an example to create a button and it to the frame by providing coordinates.
import java.awt.*;
b1.setBounds(80,200,80,50);
f1.add(b1);
f1.setSize(500,500);
f1.setLayout(null);
f1.setVisible(true);
AWT Label
In Java, AWT contains a Label Class. It is used for placing text in a container. Only Single
line text is allowed and the text can not be changed directly.
Label Declaration:
Example:
In this example, we are creating two labels to display text to the frame.
import java.awt.*;
class LabelDemo1
Label lab1,lab2;
lab1.setBounds(50,50,200,30);
lab2.setBounds(50,100,200,30);
l_Frame.add(lab1);
l_Frame.add(lab2);
l_Frame.setSize(500,500);
l_Frame.setLayout(null);
l_Frame.setVisible(true);
AWT TextField
In Java, AWT contains aTextField Class. It is used for displaying single line text.
TextField Declaration:
Example:
We are creating two textfields to display single line text string. This text is editable in nature,
see the below example.
import java.awt.*;
class TextFieldDemo1{
TextField text1,text2;
text1.setBounds(60,100, 230,40);
text2.setBounds(60,150, 230,40);
TextF_f.add(text1);
TextF_f.add(text2);
TextF_f.setSize(500,500);
TextF_f.setLayout(null);
TextF_f.setVisible(true);
AWT TextArea
In Java, AWT contains aTextArea Class. It is used for displaying multiple-line text.
TextArea Declaration:
Example:
In this example, we are creating a TextArea that is used to display multiple-line text string
and allows text editing as well.
import java.awt.*;
TextAreaDemo1()
area.setBounds(30,40, 200,200);
textArea_f.add(area);
textArea_f.setSize(300,300);
textArea_f.setLayout(null);
textArea_f.setVisible(true);
new TextAreaDemo1();
AWT Checkbox
In Java, AWT contains a Checkbox Class. It is used when we want to select only one option
i.e true or false. When the checkbox is checked then its state is "on" (true) else it is
"off"(false).
Checkbox Syntax
Example:
In this example, we are creating checkbox that are used to get user input. If checkbox is
checked it returns true else returns false.
import java.awt.*;
CheckboxDemo1(){
ckbox1.setBounds(100,100, 60,60);
ckbox2.setBounds(100,150, 60,60);
checkB_f.add(ckbox1);
checkB_f.add(ckbox2);
checkB_f.setSize(400,400);
checkB_f.setLayout(null);
checkB_f.setVisible(true);
new CheckboxDemo1();
AWT CheckboxGroup
In Java, AWT contains aCheckboxGroup Class. It is used to group a set of Checkbox. When
Checkboxes are grouped then only one box can be checked at a time.
CheckboxGroup Declaration:
Example:
This example creates a checkboxgroup that is used to group multiple checkbox in a single
unit. It is helpful when we have to select single choice among the multiples.
import java.awt.*;
CheckboxGroupDemo(){
ckBox1.setBounds(100,100, 50,50);
ckBox2.setBounds(100,150, 50,50);
ck_groupf.add(ckBox1);
ck_groupf.add(ckBox2);
ck_groupf.setSize(400,400);
ck_groupf.setLayout(null);
ck_groupf.setVisible(true);
new CheckboxGroupDemo();
AWT Choice
In Java, AWT contains a Choice Class. It is used for creating a drop-down menu of choices.
When a user selects a particular item from the drop-down then it is shown on the top of the
menu.
Choice Declaration:
Example:
In this example, we are creating drop-down menu that is used to get user choice from
multiple choices.
import java.awt.*;
ChoiceDemo()
obj.setBounds(80,80, 100,100);
obj.add("Red");
obj.add("Blue");
obj.add("Black");
obj.add("Pink");
obj.add("White");
obj.add("Green");
choice_f.add(obj);
choice_f.setSize(400,400);
choice_f.setLayout(null);
choice_f.setVisible(true);
new ChoiceDemo();
AWT List
In Java, AWT contains a List Class. It is used to represent a list of items together. One or
more than one item can be selected from the list.
List Declaration:
Example:
In this example, we are creating a list that is used to list out the items.
import java.awt.*;
ListDemo()
obj.setBounds(80,80, 100,100);
obj.add("Red");
obj.add("Blue");
obj.add("Black");
obj.add("Pink");
obj.add("White");
obj.add("Green");
list_f.add(obj);
list_f.setSize(400,400);
list_f.setLayout(null);
list_f.setVisible(true);
new ListDemo();
MenuItem declaration
Menu declaration
Example:
In this example, we are creating a menu item that contains sub menu as well. We use
MenuItem and Menu class for creating menu.
import java.awt.*;
class MenuDemo1
MenuDemo1()
MenuBarmenu_bar=new MenuBar();
menu11.add(a1);
sub_menu1.add(a2);
sub_menu1.add(a3);
menu11.add(b1);
sub_menu1.add(b2);
sub_menu1.add(b3);
menu11.add(sub_menu1);
menu_bar.add(menu11);
menu_f.setMenuBar(menu_bar);
menu_f.setSize(400,400);
menu_f.setLayout(null);
menu_f.setVisible(true);
new MenuDemo1();
AWT PopupMenu
PopupMenu declaration
Example:
import java.awt.*;
import java.awt.event.*;
class PopupMenuDemo1
PopupMenuDemo1()
pop_cut.setActionCommand("Cut");
pop_copy.setActionCommand("Copy");
pop_paste.setActionCommand("Paste");
pop_menu.add(pop_cut);
pop_menu.add(pop_copy);
pop_menu.add(pop_paste);
pop_menuf.addMouseListener(new MouseAdapter()
});
pop_menuf.add(pop_menu);
pop_menuf.setSize(400,400);
pop_menuf.setLayout(null);
pop_menuf.setVisible(true);
new PopupMenuDemo1();