• No results found

EVENT HANDLING

N/A
N/A
Protected

Academic year: 2020

Share "EVENT HANDLING"

Copied!
56
0
0

Loading.... (view fulltext now)

Full text

(1)

1

(2)

2

Babysitting

A baby in the home needs attention.

Many events surrounding the baby are not easily ignored. Events can be of different types.

(3)

3

(4)

4

Babysitting

Before responding to an event, a babysitter typically takes note of the source and the type of event.

(5)

5

Babysitting

The sitter needs to know both the event type and the event source. Event source

Event type

(6)

What is an Event?

Change in the state of an object is known as

event i.e. event describes the change in state of

source. Events are generated as result of user

interaction with the graphical user interface

components. For example, clicking on a button,

moving the mouse, entering a character through

keyboard,selecting an item from list, scrolling the

page are the activities that causes an event to

happen.

(7)

Types of Event

■ The events can be broadly classified into two categories:

Foreground Events - Those events which require the direct

interaction of user. They are generated as consequences of a person interacting with the graphical components in Graphical User Interface. For example, clicking on a button, moving the mouse, entering a character through keyboard, selecting an item from list, scrolling the page etc.

Background Events - Those events that require the interaction of

end user are known as background events. Operating system interrupts, hardware or software failure, timer expires, an operation completion are the example of background events.

(8)

What is Event Handling?

■ Event Handling is the mechanism that controls the event and decides

what should happen if an event occurs. This mechanism have the code which is known as event handler that is executed when an event occurs. Java Uses the Delegation Event Model to handle the events. This model defines the standard mechanism to generate and handle the events. The Delegation Event Model has the following key participants namely:

Source - The source is an object on which event occurs. Source is

responsible for providing information of the occurred event to it's handler. Java provide as with classes for source object.

Listener - It is also known as event handler. Listener is responsible for

generating response to an event. From java implementation point of view the listener is also an object. Listener waits until it receives an event. Once the event is received , the listener process the event an then return

(9)

Steps involved in event handling

The User clicks the button and the event is

generated.

Now the object of concerned event class is

created automatically and information about

the source and the event get populated with

in same object.

Event object is forwarded to the method of

registered listener class.

the method is now get executed and returns

(10)

Event and Listener (Java Event

Handling)

Changing the state of an object is known as

an event. For example, click on button,

dragging mouse etc. The java.awt.event

package provides many event classes and

Listener interfaces for event handling

(11)

Java Event classes and Listener

interfaces

(12)

Steps to perform Event Handling

Register the component with the Listener

(13)

Registration Methods

■ For registering the component with the Listener, many classes provide the registration methods.

Button

❑ public void addActionListener(ActionListener a){}

MenuItem

❑ public void addActionListener(ActionListener a){}

TextField

❑ public void addActionListener(ActionListener a){}

❑ public void addTextListener(TextListener a){}

TextArea

❑ public void addTextListener(TextListener a){}

Checkbox

❑ public void addItemListener(ItemListener a){}

Choice

❑ public void addItemListener(ItemListener a){}

List

❑ public void addActionListener(ActionListener a){}

❑ public void addItemListener(ItemListener a)

(14)

Java Event Handling Code

We can put the event handling code into

one of the following places:

Within class

Other class

Anonymous class

(15)

Java event handling by implementing ActionListener

import java.awt.*;

import java.awt.event.*;

class AEvent extends Frame implements ActionListener{ TextField tf; AEvent(){ //create components tf=new TextField(); tf.setBounds(60,50,170,20);

Button b=new Button("click me"); b.setBounds(100,120,80,30);

//register listener

b.addActionListener(this);//passing current instance

//add components and set size, layout and visibility add(b);add(tf);

setSize(300,300); setLayout(null); setVisible(true); }

public void actionPerformed(ActionEvent e){ tf.setText("Welcome");

}

public static void main(String args[]){ new AEvent();

} }

(16)

Java event handling by outer class

import java.awt.*;

import java.awt.event.*;

class AEvent2 extends Frame{

■ TextField tf; ■ AEvent2(){

■ //create components ■ tf=new TextField();

■ tf.setBounds(60,50,170,20); ■ Button b=new Button("click me"); ■ b.setBounds(100,120,80,30); ■ //register listener

Outer o=new Outer(this);

■ b.addActionListener(o);//passing outer class instance ■ //add components and set size, layout and visibility ■ add(b);add(tf);

■ setSize(300,300); ■ setLayout(null); setVisible(true); ■ }

public static void main(String args[]){

new AEvent2();

■ }

(17)

import java.awt.event.*;

class Outer implements ActionListener{

AEvent2 obj;

Outer(AEvent2 obj){

this.obj=obj;

}

public void actionPerformed(ActionEvent e){

obj.tf.setText("welcome");

}

}

(18)

Java event handling by anonymous class

import java.awt.*;

import java.awt.event.*;

class AEvent3 extends Frame{

TextField tf;

AEvent3(){

tf=new TextField();

tf.setBounds(60,50,170,20);

Button b=new Button("click me"); b.setBounds(50,120,80,30);

b.addActionListener(new ActionListener(){ public void actionPerformed(){

tf.setText("hello"); } }); add(b);add(tf); setSize(300,300); setLayout(null); setVisible(true); }

public static void main(String args[]){

(19)

Java ActionListener Interface

The Java ActionListener is notified whenever you click on the

button or menu item. It is notified against ActionEvent. The

ActionListener interface is found in java.awt.event package.

It has only one method: actionPerformed().

The actionPerformed() method is invoked automatically

whenever you click on the registered component.

public abstract void actionPerformed(ActionEvent e);

(20)

Action Event Class

Action listeners are probably the easiest — and most

common — event handlers to implement.

To write an Action Listener, follow the steps given below:

Declare an event handler class and specify that the class

either implements an ActionListener interface or extends a

class that implements an ActionListener interface.

For example:

public class MyClass implements

ActionListener {

(21)

Actionevent Listener conti…..

■ Register an instance of the event handler class as a listener on

one or more components. For example:

someComponent.addActionListener(instanceOfMyClass);

■ Include code that implements the methods in listener interface.

For example:

public void actionPerformed(ActionEvent e) {

if(e.getSource()==someComponent) //code that reacts to the action...

(22)

Example of Action Listener

public class changePanel implements ActionListener{ //Initializing jf,jb,jl1,jl2,jp1,jp2…

changePanel(){

jf=new JFrame("Presentation"); jb=new JButton("click");

jl1=new JLabel("1st PANEL"); jl2=new JLabel("2nd PANEL"); jp1=new JPanel(); jp2=new JPanel(); jf.setSize(500,500); jf.setBackground(Color.LIGHT_GRAY); jf.setLayout(new FlowLayout()); jf.add(jb); jp1.setSize(200,200); jf.add(jp1); jp1.add(jl1); jp2.add(jl2); jf.setVisible(true);

(23)

Conti….

jb.addActionListener(this);

}

public void actionPerformed(ActionEvent ae){

if(ae.getSource()==jb){

jp1.setVisible(false);

jf.add(jp2);

jp2.add(jl2);

}

}

}

(24)

Java KeyListener Interface

The Java KeyListener is notified whenever you change the

state of key. It is notified against KeyEvent. The KeyListener

interface is found in java.awt.event package. It has three

methods.

Methods of KeyListener interface

The signature of 3 methods found in KeyListener interface

are given below:

public abstract void keyPressed(KeyEvent e);

public abstract void keyReleased(KeyEvent e);

public abstract void keyTyped(KeyEvent e);

(25)

Example- Key Listener

import java.awt.*;

import java.awt.event.*;

public class KeyListenerExample extends Fra me implements KeyListener{ Label l; TextArea area; KeyListenerExample(){ l=new Label(); l.setBounds(20,50,100,20); area=new TextArea(); area.setBounds(20,80,300, 300); area.addKeyListener(this); add(l);add(area); setSize(400,400); setLayout(null); setVisible(true); } 25

public void keyPressed(KeyEvent e) { l.setText("Key Pressed");

}

public void keyReleased(KeyEvent e) {

l.setText("Key Released"); }

public void keyTyped(KeyEvent e) { l.setText("Key Typed");

}

public static void main(String[] args) {

new KeyListenerExample(); }

(26)

Java KeyListener Example 2: Count Words & Characters

import java.awt.*; import java.awt.event.*;

public class KeyListenerExample extends Frame implements KeyListener{

Label l; TextArea area; KeyListenerExample(){ l=new Label(); l.setBounds(20,50,200,20); area=new TextArea(); area.setBounds(20,80,300, 300); area.addKeyListener(this); add(l);add(area); setSize(400,400); setLayout(null); setVisible(true); }

public void keyPressed(KeyEvent e) {} public void keyReleased(KeyEvent e) { String text=area.getText();

String words[]=text.split("\\s");

l.setText("Words: "+words.length+" Characters:"+text.length()); }

public void keyTyped(KeyEvent e) {}

public static void main(String[] args) { new KeyListenerExample();

} }

(27)

Java MouseListener Interface

The Java MouseListener is notified whenever you change the

state of mouse. It is notified against MouseEvent. The

MouseListener interface is found in java.awt.event package. It

has five methods.

Methods of MouseListener interface

The signature of 5 methods found in MouseListener interface

are given below:

public abstract void mouseClicked(MouseEvent e);

public abstract void mouseEntered(MouseEvent e);

public abstract void mouseExited(MouseEvent e);

public abstract void mousePressed(MouseEvent e);

public abstract void mouseReleased(MouseEvent e);

(28)

Java MouseListener Example

import java.awt.*; import java.awt.event.*;

public class MouseListenerExample extends Frame implements MouseListener{

Label l; MouseListenerExample(){ addMouseListener(this); l=new Label(); l.setBounds(20,50,100,20); add(l); setSize(300,300); setLayout(null); setVisible(true); }

public void mouseClicked(MouseEvent e) { l.setText("Mouse Clicked");

}

public void mouseEntered(MouseEvent e) { l.setText("Mouse Entered");

}

public void mouseExited(MouseEvent e) { l.setText("Mouse Exited");

}

public void mousePressed(MouseEvent e) { l.setText("Mouse Pressed");

}

public void mouseReleased(MouseEvent e) { l.setText("Mouse Released");

}

public static void main(String[] args) {

new MouseListenerExample(); }

(29)

Java MouseListener Example 2

import java.awt.*;

import java.awt.event.*;

public class MouseListenerExample2 extends Frame implements MouseListener{

MouseListenerExample2(){ addMouseListener(this); setSize(300,300); setLayout(null); setVisible(true); }

public void mouseClicked(MouseEvent e) { Graphics g=getGraphics();

g.setColor(Color.BLUE);

g.fillOval(e.getX(),e.getY(),30,30); }

public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {}

public static void main(String[] args) {

new MouseListenerExample2(); }

(30)

Java MouseMotionListener Interface

The Java MouseMotionListener is notified whenever you

move or drag mouse. It is notified against MouseEvent. The

MouseMotionListener interface is found in java.awt.event

package. It has two methods.

Methods of MouseMotionListener interface

The signature of 2 methods found in MouseMotionListener

interface are given below:

public abstract void mouseDragged(MouseEvent e);

public abstract void mouseMoved(MouseEvent e);

(31)

Java MouseMotionListener Example

import java.awt.*;

import java.awt.event.*;

public class MouseMotionListenerExample extends Frame implements MouseMotionListener{

■ MouseMotionListenerExample(){ ■ addMouseMotionListener(this); ■ ■ setSize(300,300); ■ setLayout(null); setVisible(true); ■ }

public void mouseDragged(MouseEvent e) {

■ Graphics g=getGraphics(); ■ g.setColor(Color.BLUE);

■ g.fillOval(e.getX(),e.getY(),20,20); ■ }

public void mouseMoved(MouseEvent e) {}

public static void main(String[] args) {

new MouseMotionListenerExample(); ■ }

■ }

(32)

Java WindowListener Interface

The Java WindowListener is notified whenever you change the state of window. It is notified against WindowEvent. The WindowListener interface is found in

java.awt.event package. It has three methods.

Methods of WindowListener interface

■ The signature of 7 methods found in WindowListener interface are given below:

public abstract void windowActivated(WindowEvent e);

public abstract void windowClosed(WindowEvent e);

public abstract void windowClosing(WindowEvent e);

public abstract void windowDeactivated(WindowEvent e);

public abstract void windowDeiconified(WindowEvent e);

public abstract void windowIconified(WindowEvent e);

public abstract void windowOpened(WindowEvent e);

(33)

Java WindowListener Example import java.awt.*;

import java.awt.event.WindowEvent; import java.awt.event.WindowListener;

public class WindowExample extends Frame implements WindowListener{

■ WindowExample(){ ■ addWindowListener(this); ■ ■ setSize(400,400); ■ setLayout(null); setVisible(true); ■ } ■

public static void main(String[] args) {

new WindowExample(); ■ }

public void windowActivated(WindowEvent arg0) {

■ System.out.println("activated"); ■ }

public void windowClosed(WindowEvent arg0) {

■ System.out.println("closed"); ■ }

public void windowClosing(WindowEvent arg0) {

■ System.out.println("closing"); ■ dispose();

■ }

public void windowDeactivated(WindowEvent arg0) {

■ System.out.println("deactivated"); ■ }

public void windowDeiconified(WindowEvent arg0) {

■ System.out.println("deiconified"); ■ }

public void windowIconified(WindowEvent arg0) {

■ System.out.println("iconified"); ■ }

public void windowOpened(WindowEvent arg0) {

■ System.out.println("opened"); ■ } }

(34)

Java Adapter Classes

Java

adapter

classes provide

the

default

implementation of listener interfaces. If you

inherit the adapter class, you will not be forced to

provide the implementation of all the methods of

listener interfaces. So it saves code.

The

adapter

classes

are

found

in java.awt.event, java.awt.dnd and javax.swing

.event packages.

(35)

java.awt.event Adapter classes

(36)

javax.swing.event Adapter classes

(37)

Java WindowAdapter Example

import java.awt.*;

import java.awt.event.*;

public class AdapterExample{

■ Frame f;

■ AdapterExample(){

f=new Frame("Window Adapter");

f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { ■ f.dispose(); ■ } ■ }); ■ ■ f.setSize(400,400); ■ f.setLayout(null); f.setVisible(true); ■ }

public static void main(String[] args) {

new AdapterExample(); ■ }

■ }

(38)

Java MouseAdapter Example

import java.awt.*;

import java.awt.event.*;

public class MouseAdapterExample extends MouseAdapter{

■ Frame f;

■ MouseAdapterExample(){

f=new Frame("Mouse Adapter"); f.addMouseListener(this); ■ ■ f.setSize(300,300); ■ f.setLayout(null); f.setVisible(true); ■ }

public void mouseClicked(MouseEvent e) { ■ Graphics g=f.getGraphics();

■ g.setColor(Color.BLUE);

■ g.fillOval(e.getX(),e.getY(),30,30); ■ }

public static void main(String[] args) {

new MouseAdapterExample(); ■ }

■ }

(39)

Java KeyAdapter Example

import java.awt.*;

import java.awt.event.*;

public class KeyAdapterExample extends KeyAdapter{ Label l;

TextArea area; Frame f;

KeyAdapterExample(){

f=new Frame("Key Adapter"); l=new Label(); l.setBounds(20,50,200,20); area=new TextArea(); area.setBounds(20,80,300, 300); area.addKeyListener(this); f.add(l);f.add(area); f.setSize(400,400); f.setLayout(null); f.setVisible(true); }

public void keyReleased(KeyEvent e) { String text=area.getText();

String words[]=text.split("\\s");

l.setText("Words: "+words.length+" Characters:"+text.length()); }

public static void main(String[] args) { new KeyAdapterExample();

} }

(40)

Java Applet

Applet is a special type of program that is embedded in the webpage to generate the dynamic content. It runs inside the browser and works at client side.

Advantage of Applet

There are many advantages of applet. They are as follows:

■ It works at client side so less response time. ■ Secured

■ It can be executed by browsers running under many plateforms, including

Linux, Windows, Mac Os etc.

Drawback of Applet

■ Plugin is required at client browser to execute applet.

(41)

An applet is a Java program that runs in a Web browser. An applet can be a fully functional Java application because it has the entire Java API at its disposal.

There are some important differences between an applet and a standalone Java application, including the following −

■ An applet is a Java class that extends the java.applet.Applet class.

■ A main() method is not invoked on an applet, and an applet class will not define

main().

■ Applets are designed to be embedded within an HTML page.

■ When a user views an HTML page that contains an applet, the code for the applet is

downloaded to the user's machine.

■ A JVM is required to view an applet. The JVM can be either a plug-in of the Web

browser or a separate runtime environment.

■ The JVM on the user's machine creates an instance of the applet class and invokes

various methods during the applet's lifetime.

■ Applets have strict security rules that are enforced by the Web browser. The security of

an applet is often referred to as sandbox security, comparing the applet to a child playing in a sandbox with various rules that must be followed.

■ Other classes that the applet needs can be downloaded in a single Java Archive (JAR)

file.

(42)

Hierarchy of Applet

(43)

Lifecycle of Java Applet

1.

Applet is initialized.

2.

Applet is started.

3.

Applet is painted.

4.

Applet is stopped.

5.

Applet is destroyed.

43

(44)

Lifecycle methods for Applet:

For creating any applet java.applet. Applet class must be

inherited. It provides 4 life cycle methods of applet.

public void init(): is used to initialized the Applet. It is

invoked only once.

public void start(): is invoked after the init() method or

browser is maximized. It is used to start the Applet.

public void stop(): is used to stop the Applet. It is invoked

when Applet is stop or browser is minimized.

public void destroy(): is used to destroy the Applet. It is

invoked only once.

(45)

Four methods in the Applet class gives you the framework on which you build any serious applet −

init − This method is intended for whatever initialization is needed for your

applet. It is called after the param tags inside the applet tag have been processed.

start − This method is automatically called after the browser calls the init

method. It is also called whenever the user returns to the page containing the applet after having gone off to other pages.

stop − This method is automatically called when the user moves off the

page on which the applet sits. It can, therefore, be called repeatedly in the same applet.

destroy − This method is only called when the browser shuts down

normally. Because applets are meant to live on an HTML page, you should not normally leave resources behind after a user leaves the page that contains the applet.

paint − Invoked immediately after the start() method, and also any time the

applet needs to repaint itself in the browser. The paint() method is actually inherited from the java.awt.

(46)

java.awt.Component class

The Component class provides 1 life cycle

method of applet.

public void paint(Graphics g): is used to paint

the Applet. It provides Graphics class object that

can be used for drawing oval, rectangle, arc etc.

(47)

How to run an Applet?

There are two ways to run an applet

By html file.

By appletViewer tool (for testing purpose).

(48)

Simple example of Applet by html file:

To execute the applet by html file, create an applet and

compile it. After that create an html file and place the applet

code in html file. Now click the html file.

//First.java

import java.applet.Applet;

import java.awt.Graphics;

public class First extends Applet{

public void paint(Graphics g){

g.drawString("welcome",150,150);

}

}

(49)

myapplet.html

<html>

<body>

<applet code="First.class" width="300" height

="300">

</applet>

</body>

</html>

(50)

Simple example of Applet by appletviewer

tool:

To execute the applet by appletviewer tool, create

an applet that contains applet tag in comment and

compile it. After that run it by: appletviewer

First.java. Now Html file is not required but it is

for testing purpose only.

To execute the applet by appletviewer tool, write

in command prompt:

c:\>javac First.java

c:\>appletviewer First.java

(51)

■ //First.java

import java.applet.Applet; import java.awt.Graphics;

public class First extends Applet{

public void paint(Graphics g){

■ g.drawString("welcome to applet",150,150); ■ }

■ ■ } ■ /*

■ <applet code="First.class" width="300" height="300"> ■ </applet>

■ */

(52)

Graphics in Applet

public abstract void drawString(String str, int x, int y): is used to draw the specified string. public void drawRect(int x, int y, int width, int height): draws a rectangle with the specified

width and height.

public abstract void fillRect(int x, int y, int width, int height): is used to fill rectangle with the

default color and specified width and height.

public abstract void drawOval(int x, int y, int width, int height): is used to draw oval with the

specified width and height.

public abstract void fillOval(int x, int y, int width, int height): is used to fill oval with the

default color and specified width and height.

public abstract void drawLine(int x1, int y1, int x2, int y2): is used to draw line between the

points(x1, y1) and (x2, y2).

public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer): is

used draw the specified image.

public abstract void drawArc(int x, int y, int width, int height, int startAngle, int

arcAngle): is used draw a circular or elliptical arc.

public abstract void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle): is

used to fill a circular or elliptical arc.

public abstract void setColor(Color c): is used to set the graphics current color to the

specified color.

public abstract void setFont(Font font): is used to set the graphics current font to the

(53)

Graphics in Applet

import java.applet.Applet;

import java.awt.*;

public class GraphicsDemo extends Applet{

public void paint(Graphics g){

■ g.setColor(Color.red); ■ g.drawString("Welcome",50, 50); ■ g.drawLine(20,30,20,300); ■ g.drawRect(70,100,30,30); ■ g.fillRect(170,100,30,30); ■ g.drawOval(70,200,30,30); ■ g.setColor(Color.pink); ■ g.fillOval(170,200,30,30); ■ g.drawArc(90,150,30,30,30,270); ■ g.fillArc(270,150,30,30,0,180); ■ } ■ } 53

(54)

EventHandling in Applet

As we perform event handling in AWT or Swing,

we can perform it in applet also

(55)

Example of EventHandling in applet:

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

public class EventApplet extends Applet implements ActionListener{

■ Button b; ■ TextField tf; ■

public void init(){

tf=new TextField(); ■ tf.setBounds(30,40,150,20); ■ ■ b=new Button("Click"); ■ b.setBounds(80,150,60,50); ■ ■ add(b);add(tf); ■ b.addActionListener(this); ■ ■ setLayout(null); ■ } ■

public void actionPerformed(ActionEvent e){ ■ tf.setText("Welcome");

■ } ■ }

(56)

myapplet.html

<html>

<body>

<applet code="EventApplet.class" width="300

" height="300">

</applet>

</body>

</html>

References

Related documents

El objetivo de este artículo es, por una parte, analizar si el número sin precedentes de alcaldesas y concejalas escogidas en las elecciones locales de 2014 ha

More specifically, in order to conduct research on revitalizing education for dynamic hearts and minds and address the issue of how to advance practice in

Bicolored or uniformly dark, with microsculpture mesh pattern slightly transverse, sculpticells slightly wider than long (Fig. 5C-D) in dorsal aspect slender, shaft subsinuate,

The OpenStage 30T/40/40G/40T always requires a local power supply (SMPS mains adapter, must be ordered separately) if an OpenStage Busy Lamp Field 40 is connected.. The PNOTE

However, given that D includes implicit coercion, that choice is overly restrictiveÐthe two terms will also type check with definitionally equal types too.. Therefore, the third

FORENSIC ACCOUNTING: A COMPREHENSIVE GUIDE TO CONDUCTING FINANCIAL FRAUD INVESTIGATIONS FOAC/14/01... This product is intended to serve solely as an aid in

vANdAL ReSISTANT PUSH PLATeS Narrow PN1 PN2 PN5 Tee-Style PT1 PT2 PT5 Single Gang PS1 PS2 PS5 Switch description SPDT momentary DPDT momentary Pneumatic time delay. 2-60 seconds

All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights..