Top Banner
Programming in Java Event Handling By Ravi Kant Sahu Asst. Professor Lovely Professional University, Punjab Lovely Professional University, Punjab
31
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Event handling

Programming in Java

Event Handling

ByRavi Kant SahuAsst. Professor

Lovely Professional University, PunjabLovely Professional University, Punjab

Page 2: Event handling

Outlines

• Delegation Event Model• ActionListener• ItemListener• KeyListener• MouseListener• MouseMotionListener• WindowListener

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 3: Event handling

Introduction• An event can be defined as a signal to the program that something has

happened.

• Events are triggered either by external user actions, such as mouse movements, button clicks, and keystrokes, or by internal program activities, such as a timer.

• The program can choose to respond to or ignore an event.

• The component that creates an event and fires it is called the source object or source component.

• For example, a button is the source object for a button-clicking action event.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 4: Event handling

Introduction• An event is an instance of an event class.

• The root class of the event classes is java.util.EventObject.

• We can identify the source object of an event using the getSource() method in the EventObject class.

• The subclasses of EventObject deal with special types of events, such as action events, window events, component events, mouse events, and key events.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 5: Event handling

Delegation event MoDel

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 6: Event handling

The Delegation Event Model• The delegation event model defines standard and consistent

mechanisms to generate and process events.

Principle:• A source generates an event and sends it to one or more listeners.• The listener waits until it receives an event. • Once an event is received, the listener processes the event and then

returns.

Advantage:• The application logic that processes events is cleanly separated

from the user interface logic that generates those events. • A user interface element is able to “delegate” the processing of an

event to a separate piece of code.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 7: Event handling

• In the delegation event model, listeners must register with a source in order to receive an event notification.

• This provides an important benefit: notifications are sent only to listeners that want to receive them.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 8: Event handling

Event• An event is an object that describes a state change in a source.

• It can be generated as a consequence of a person interacting with the elements in a graphical user interface.

• For Example, pressing a button, entering a character via the keyboard, selecting an item in a list, and clicking the mouse.

• Events may also occur that are not directly caused by interactions with a user interface.

• For example, an event may be generated when a timer expires, a counter exceeds a value, a software or hardware failure occurs, or an operation is completed.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 9: Event handling

Event Source• An Event source is an object that generates an event.

• This occurs when the internal state of that object changes in some way.

• Sources may generate more than one type of event.

• A source must register listeners in order for the listeners to receive notifications about a specific type of event.

• Each type of event has its own registration method.

public void addTypeListener(TypeListener el)

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 10: Event handling

• When an event occurs, all registered listeners are notified and receive a copy of the event object. This is known as multicasting the event.

• In all cases, notifications are sent only to listeners that register to receive them.

• Some sources may allow only one listener to register.

public void addTypeListener(TypeListener el) throws java.util.TooManyListenersException

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 11: Event handling

Event Listener• A listener is an object that is notified when an event occurs. It has two

major requirements.

• First, it must have been registered with one or more sources to receive notifications about specific types of events.

• Second, it must implement methods to receive and process these notifications.

• The methods that receive and process events are defined in a set of interfaces found in java.awt.event.

• For example, the MouseMotionListener interface defines two methods to receive notifications when the mouse is dragged or moved.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 12: Event handling

Listener interfaces

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 13: Event handling

Listener API TableListener Interface Listener Methods

ActionListener actionPerformed(ActionEvent)

ItemListener itemStateChanged(ItemEvent)

MouseListener

mouseClicked(MouseEvent)mouseEntered(MouseEvent)mouseExited(MouseEvent)mousePressed(MouseEvent)mouseReleased(MouseEvent)

MouseMotionListener mouseDragged(MouseEvent)mouseMoved(MouseEvent)

KeyListenerkeyPressed(KeyEvent)keyReleased(KeyEvent)keyTyped(KeyEvent)

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 14: Event handling

ActionListener• Action listeners are most common event handlers to implement.

• An action event occurs, whenever an action is performed by the user.

• We implement an action listener to define what should be done when an user performs certain operation.

Examples: When the user clicks a button, chooses a menu item, presses Enter in a text field.

• The result is that an actionPerformed message is sent to all action listeners that are registered on the relevant component.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 15: Event handling

• 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 {

• 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) { ...//code that reacts to the action... }

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 16: Event handling

ActionEvent Class

Method PurposeString getActionCommand() Returns the string associated with this

action. Most objects that can fire action events support a method called setActionCommand that lets you set this string.

Object getSource() Returns the object that fired the event.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 17: Event handling

ItemListener Interface• Item events are fired by components that implement the

ItemSelectable interface.

• Generally, ItemSelectable components maintain on/off state for one or more items.

• The Swing components that fire item events include buttons like check boxes, check menu items, toggle buttons and combo boxes etc.

• ItemListener Interface has only one method.public void itemStateChanged (ItemEvent)

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 18: Event handling

ItemEvent classMethod Purpose

Object getItem() Returns the component-specific object associated with the item whose state changed. Often this is a String containing the text on the selected item.

ItemSelectable getItemSelectable() Returns the component that fired the item event. You can use this instead of the getSource method.

int getStateChange() Returns the new state of the item. The ItemEvent class defines two states: SELECTED and DESELECTED.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 19: Event handling

KeyListener Interface

• Key events indicate when the user is typing at the keyboard.

• Key events are fired by the component with the keyboard focus when the user presses or releases keyboard keys.

• Notifications are sent about two basic kinds of key events:– The typing of a Unicode character– The pressing or releasing of a key on the keyboard

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 20: Event handling

• The first kind of event is called a key-typed event.

• To know when the user types a Unicode character ? whether by pressing one key such as 'a' or by pressing several keys in sequence ?

• The second kind is either a key-pressed or key-released event.

• To know when the user presses the F1 key, or whether the user pressed the '3' key on the number pad, you handle key-pressed events.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 21: Event handling

Methods of KeyListener Interface

Method PurposekeyTyped(KeyEvent) Called just after the user types a

Unicode character into the listened-to component.

keyPressed(KeyEvent) Called just after the user presses a key while the listened-to component has the focus.

keyReleased(KeyEvent) Called just after the user releases a key while the listened-to component has the focus.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 22: Event handling

KeyEvent classMethod Purpose

int getKeyChar()Obtains the Unicode character associated with this event.

int getKeyCode()

Obtains the key code associated with this event. The key code identifies the particular key on the keyboard that the user pressed or released. For example, VK_Aspecifies the key labeled A, and VK_ESCAPE specifies the Escape key.

boolean isActionKey()Returns true if the key firing the event is an action key. Examples of action keys include Page Up, Caps Lock, the arrow and function keys.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 23: Event handling

MouseListener Interface

• Mouse events notify when the user uses the mouse (or similar input device) to interact with a component.

• Mouse events occur when the cursor enters or exits a component's onscreen area and when the user presses or releases one of the mouse buttons.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 24: Event handling

Methods of MouseListener InterfaceMethod Purpose

mouseClicked(MouseEvent) Called just after the user clicks the listened-to component.

mouseEntered(MouseEvent) Called just after the cursor enters the bounds of the listened-to component.

mouseExited(MouseEvent) Called just after the cursor exits the bounds of the listened-to component.

mousePressed(MouseEvent) Called just after the user presses a mouse button while the cursor is over the listened-to component.

mouseReleased(MouseEvent) Called just after the user releases a mouse button after a mouse press over the listened-to component.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 25: Event handling

MouseEvent class

Method Purpose

int getClickCount()Returns the number of quick, consecutive clicks the user has made (including this event). For example, returns 2 for a double click.

int getButton()

Returns which mouse button, if any, has a changed state. One of the following constants is returned: NOBUTTON, BUTTON1, BUTTON2, or BUTTON3.

int getX()int getY()

Return the (x,y) position at which the event occurred, relative to the component that fired the event.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 26: Event handling

MouseAdapter Class• MouseAdapter class provides an empty implementation of all the

methods in MouseListener interface. This class exists as convenience for creating listener objects.

• Extend this class to create a MouseEvent listener and override the methods for the events of interest.

• Create a listener object using the extended class and then register it with a component using the component's addMouseListener method.

• When a mouse button is pressed, released, or clicked (pressed and released), or when the mouse cursor enters or exits the component, the relevant method in the listener object is invoked and the MouseEvent is passed to it.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 27: Event handling

MouseMotionListener Interface• Mouse-motion events notify when the user uses the mouse (or a

similar input device) to move the onscreen cursor.

• If an application requires the detection of both mouse events and mouse-motion events, use the MouseInputAdapter class.

• It implements the MouseInputListener a convenient interface that implements both the MouseListener and MouseMotionListenerinterfaces.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 28: Event handling

Methods of MouseMotionListener Interface

Method Purpose

mouseDragged(MouseEvent)Called in response to the user moving the mouse while holding a mouse button down. This event is fired by the component that fired the most recent mouse-pressed event, even if the cursor is no longer over that component.

mouseMoved(MouseEvent)

Called in response to the user moving the mouse with no mouse buttons pressed. This event is fired by the component that's currently under the cursor.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 29: Event handling

WindowListener Interface

• The listener interface for receiving window events.

• The class that is interested in processing a window event either implements this interface (and all the methods it contains) or extends the abstract WindowAdapter class (overriding only the methods of interest).

• The listener object created from that class is then registered with a Window using the window's addWindowListener () method.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 30: Event handling

Methods of WindowListenerMethod Purpose

void windowClosing(WindowEvent e)

Invoked when the user attempts to close the window from the window's system menu.

void windowOpened(WindowEvent e)

Invoked the first time a window is made visible.

void windowClosed(WindowEvent e)

Invoked when a window has been closed as the result of calling dispose on the window.

void windowIconified(WindowEvent e)

Invoked when a window is changed from a normal to a minimized state.

void windowDeiconified(WindowEvent e)

Invoked when a window is changed from a minimized to a normal state.

void windowActivated(WindowEvent e)

Invoked when the Window is set to be the active Window.

void windowDeactivated(WindowEvent e)

Invoked when a Window is no longer the active Window.

Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

Page 31: Event handling