ch1 Cont
ch1 Cont
ch1 Cont
Handling
1
Introduction
2
Event Handling
Happens every time a user interacts with a user interface. For example,
when a user pushes a button, or types a character.
For example, let's say we have a JButton. If a user clicks
on the JButton, a button click event is triggered, the event will be
created, and it will be sent to the relevant event listener (in this case,
the ActionListener). The relevant listener will have implemented
code that determines the action to take when the event occurs.
3
How Events Work
4
Types of Events
ActionEvent: Represents a graphical element is clicked, such as a
button or item in a list. Related listener: ActionListener.
ContainerEvent: Represents an event that occurs to the GUI's
container itself, for example, if a user adds or removes an object
from the interface. Related listener: ContainerListener.
KeyEvent: Represents an event in which the user presses, types
or releases a key. Related listener: KeyListener.
WindowEvent: Represents an event relating to a window, for
example, when a window is closed, activated or
deactivated. Related listener: WindowListener.
MouseEvent: Represents any event related to a mouse, such as
when a mouse is clicked or pressed. Related
listener: MouseListener.
5
Event Representation
Each event is represented by an object that gives
information about the event and identifies the
event source.
Event source which generates the event object
Event listener which receives the event object
and handles it
Event object that describes the event
In Java, every event is a subclass of EventObject.
6
Event Sources
Event sources are usually components, but they
can be other kind of objects too.
An event source can have multiple event listeners
registered on it.
Examples of event sources are e.g. buttons and
windows.
7
Event Listeners
An event listener is an object that wants to be
notified when an event has occured on a
component.
The common interface that all event listener
interfaces must extend is EventListener.
8
Event Listeners
For example, to listen for ActionEvents the class
must implement the interface ActionListener, that
in turn is an implementation of EventListener.
An example is shown on the next slide
9
An ActionListener
Object Object
#source
EventObject
Component
AWTEvent
By the classes
TextComponent
implementing <<use>> ActionEvent <<create>>
the interface
EventListener
interface * TextField
ActionListener
+addActionListener:
ItemListener InputTextAdapter
AdjustmentListener
ConverterModel
+actionPerformed:
+itemStateChanged:
+actionPerformed:
10
Event Adapters
To highten the ease of use, most eventlistener
interfaces have corresponding adapter classes that
have all of the interface methods implemented.
Must be subclassed.
11
Adapter Classes
In the previous implementation, we implemented
four empty methods.
We can create a listener class that extends its
corresponding adapter class.
Adapter classes provide the empty implementation
of all the methods in a listener interface
We only need to override the method(s) whose
behavior we want to influence.
Three Required Parts
public class MyClass implements ActionListener
someComponent.addActionListener(aMyClass)
public void actionPerformed(ActionEvent e){}
13
An Example
14
Components and Events
Every component support component, focus, key,
mouse and mouse-motion listeners.
Fires only events for which listeners has registered
an interest in.
15
Events in the Converter
ActionEvent
◦ Listener must implement the interface ActionListener.
16
ActionEvent
Generated when the user presses return in the
textfield.
EventSource calls the method actionPerformed() in
the listeners and sends the event as a parameter.
17
ChangeEvent
Generated when the user changes the slider.
Listeners must implement the method
stateChanged(), that is invoked when the target of
the listener has changed its state.
18
AdjustmentEvent
Generated when the user changes the value of the
scrollbar (AWT).
Has several specialized methods:
◦ getAdjustable()
◦ getAdjustmentType()
◦ getValue()
19
AdjustmentEvent
Listeners must implement the method
adjustmentValueChanged() that is invoked when
the srollbar changes its value.
20
ItemEvent
Generated when the user selects another unit in
the choicebox.
Has some specialized methods:
◦ getItem()
◦ getItemSelectable()
◦ getStateChanged()
21
ItemEvent
The event is passed to every ItemListener object
which registered to receive such events using the
component's addItemListener() method.
When an item-selection event occurs, the listener
object's itemStateChanged() method is invoked.
22
23