SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
» GUI
˃ Events
˃ Event Handling

https://www.facebook.com/Oxus20

oxus20@gmail.com

JAVA
GUI
PART III
Milad Kawesh
Agenda
» Events
» Java Delegation Model
» Event Handling
» Practical Examples
2

https://www.facebook.com/Oxus20
Windows based Java Programs
» Console-Based Programming
˃ Every thing is predetermined
˃ The program code determines the sequence of events

» Window-Based Programming
˃ The operation is driven by what you do with the GUI
˃ Selecting menu items, buttons, or keyboard causes particular
actions within a program
˃ The specific program that is executed next is not known
https://www.facebook.com/Oxus20

3
Event driven Programming
» The signals that a program receives from the OS as a
result of your actions are called events
» A window based program is called event driven
program
» Unlike the old rigid old sequential programs,
» it puts user in charge, user control the sequence of
program
» Application waits for the user action
» This approach is called event driven programming
4

https://www.facebook.com/Oxus20
The Event Handling Process
» Suppose a user clicks a button in the GUI
˃ Button is the source of the event

» When a button is clicked, it will create a new
object that have information about event and
its source (in this case ActionListener)
» This object is passed to a method that handles
the event in its listener
» A listener is called Target of an event
5

https://www.facebook.com/Oxus20
Delegation Event Model
» The way in which events are handled in Java, using listener
objects, is called delegation event model
» We can make objects of any class listener objects by making
the class implement a listener interface
» In case of the button, the ActionListener interface needs to

be implemented to receive events from button
» actionPerformed(ActionEvent e) is called when the event
occurs and the event object is passed as an argument
https://www.facebook.com/Oxus20

6
Java Events
» Events are objects
˃ Objects that represent user initiated actions
˃ Examples:
+ button clicked -> ActionEvent
+ mouse dragged -> MouseEvent
+ Enter key pressed -> KeyEvent
˃ EventObject; root event class for all event objects
˃ AWTEvent; root event class for all AWT events
˃ Package java.awt.event
+ Provides interfaces and classes for dealing with different
types of events fired by AWT components.
7

https://www.facebook.com/Oxus20
8

https://www.facebook.com/Oxus20
Event Handling
» Programmer choice to decide how to handle the
generated event
˃ Ignore the Event
˃ Have the Event handled by the component where the
event was generated (Self Contained Event handling)
˃ Delegate event handling to some other object called
Listeners (Event Delegation)
9

https://www.facebook.com/Oxus20
Event Delegation
» Some time component on which event was
generated is not best suited to handle its own
event
» The process of assigning an object to handle a

component’s events is called delegation.
» The event handling objects are called Listeners
10

https://www.facebook.com/Oxus20
Key Methods of Event
» Object getSource()
In ObjectEvent, return the component in
which event took place.
» int getID()

In AwtEvent, return int that describes the
nature of the event e.g. on MouseEvent it will
give MOUSE_PRESSED, MOUSE_DRAGGED.
11

https://www.facebook.com/Oxus20
Event Listeners
» Interfaces to support dispatching of events
» Each Event class has a corresponding Listener interface
» Multiple listeners for the same event type
» Each interface will have one or more method

corresponding to types of events
» ActionEvent -> ActionListener
» MouseEvent -> MouseListener and MouseMotionListener
https://www.facebook.com/Oxus20

12
Registering Listeners
» Listeners register themselves with component
˃ public void addXXXListener(XXXListener)
˃ addActionListener, addItemListener, etc.

» Multiple listeners can be registered for the same

event on a component
˃ One event can trigger numerous responses
˃ Events are broadcast to all listeners
13

https://www.facebook.com/Oxus20
Wiring a Listener
» Define a class to implement the Listener Interface
Public class Applet extends Applet implements ActionListener
public class MyClass implements ActionListener {

» Add the implementation of the Interface
…
public void actionPerformed(ActionEvent e) {
// here’s where I do stuff when the action happens
…

» Add class as a Listener to Component
…
Button ok = new Button(“OK”)
ok.addActionListener(this);
14

https://www.facebook.com/Oxus20
ActionListener Example
import
import
import
import
import

javax.swing.*;
java.awt.FlowLayout;
java.awt.Dimension;
java.awt.event.ActionListener;
java.awt.event.ActionEvent;

public class ActionListenerTest extends JFrame implements
ActionListener {

JTextArea topTextArea;
JTextArea bottomTextArea;
JButton button1, button2;
final static String newline = "n";
15

https://www.facebook.com/Oxus20
ActionListener Example (cont.)
public ActionListenerTest() {
setLayout(new FlowLayout());
topTextArea = new JTextArea();
topTextArea.setEditable(false);
JScrollPane topScrollPane = new JScrollPane(topTextArea);
topScrollPane.setPreferredSize(new Dimension(200, 75));
add(topScrollPane);
bottomTextArea = new JTextArea();
bottomTextArea.setEditable(false);
JScrollPane bottomScrollPane = new JScrollPane(bottomTextArea);

bottomScrollPane.setPreferredSize(new Dimension(200, 75));
16

https://www.facebook.com/Oxus20
ActionListener Example (cont.)
add(bottomScrollPane);
button1 = new JButton("top Text area");
add(button1);
button2 = new JButton("down text area");
add(button2);
button1.addActionListener(this);
button2.addActionListener(this);
setSize(300, 222);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
17

https://www.facebook.com/Oxus20
ActionListener Example(cont.)
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
topTextArea.append(e.getActionCommand() + newline);
}
if (e.getSource() == button2) {
bottomTextArea.append(e.getActionCommand() + newline);
}
}
public static void main(String[] args) {
new ActionListenerTest();
}
}
18

https://www.facebook.com/Oxus20
OUTPUT

19

https://www.facebook.com/Oxus20
Lets practice

20

https://www.facebook.com/Oxus20
END

21

https://www.facebook.com/Oxus20

Contenu connexe

Tendances

Event handling63
Event handling63Event handling63
Event handling63
myrajendra
 

Tendances (20)

GUI (graphical user interface)
GUI (graphical user interface)GUI (graphical user interface)
GUI (graphical user interface)
 
tL20 event handling
tL20 event handlingtL20 event handling
tL20 event handling
 
Event handling63
Event handling63Event handling63
Event handling63
 
Unit-3 event handling
Unit-3 event handlingUnit-3 event handling
Unit-3 event handling
 
Java: GUI
Java: GUIJava: GUI
Java: GUI
 
28 awt
28 awt28 awt
28 awt
 
Event handling in Java(part 2)
Event handling in Java(part 2)Event handling in Java(part 2)
Event handling in Java(part 2)
 
Basic of Abstract Window Toolkit(AWT) in Java
Basic of Abstract Window Toolkit(AWT) in JavaBasic of Abstract Window Toolkit(AWT) in Java
Basic of Abstract Window Toolkit(AWT) in Java
 
Complete java swing
Complete java swingComplete java swing
Complete java swing
 
tL19 awt
tL19 awttL19 awt
tL19 awt
 
09events
09events09events
09events
 
25 awt
25 awt25 awt
25 awt
 
Awt and swing in java
Awt and swing in javaAwt and swing in java
Awt and swing in java
 
Java awt tutorial javatpoint
Java awt tutorial   javatpointJava awt tutorial   javatpoint
Java awt tutorial javatpoint
 
What is Event
What is EventWhat is Event
What is Event
 
Swings in java
Swings in javaSwings in java
Swings in java
 
Java swing
Java swingJava swing
Java swing
 
Lecture8 oopj
Lecture8 oopjLecture8 oopj
Lecture8 oopj
 
Java Swing JFC
Java Swing JFCJava Swing JFC
Java Swing JFC
 
Swing and AWT in java
Swing and AWT in javaSwing and AWT in java
Swing and AWT in java
 

En vedette

Graphical User Interface (GUI) - 1
Graphical User Interface (GUI) - 1Graphical User Interface (GUI) - 1
Graphical User Interface (GUI) - 1
PRN USM
 
Java programming-Event Handling
Java programming-Event HandlingJava programming-Event Handling
Java programming-Event Handling
Java Programming
 

En vedette (20)

JAVA GUI PART I
JAVA GUI PART IJAVA GUI PART I
JAVA GUI PART I
 
Java GUI PART II
Java GUI PART IIJava GUI PART II
Java GUI PART II
 
GUI Programming In Java
GUI Programming In JavaGUI Programming In Java
GUI Programming In Java
 
Swing and Graphical User Interface in Java
Swing and Graphical User Interface in JavaSwing and Graphical User Interface in Java
Swing and Graphical User Interface in Java
 
GUI Programming in JAVA (Using Netbeans) - A Review
GUI Programming in JAVA (Using Netbeans) -  A ReviewGUI Programming in JAVA (Using Netbeans) -  A Review
GUI Programming in JAVA (Using Netbeans) - A Review
 
Graphical User Interface (GUI) - 1
Graphical User Interface (GUI) - 1Graphical User Interface (GUI) - 1
Graphical User Interface (GUI) - 1
 
Graphical User Interface (Gui)
Graphical User Interface (Gui)Graphical User Interface (Gui)
Graphical User Interface (Gui)
 
Threads and concurrency in Java 1.5
Threads and concurrency in Java 1.5Threads and concurrency in Java 1.5
Threads and concurrency in Java 1.5
 
Concurrent Programming in Java
Concurrent Programming in JavaConcurrent Programming in Java
Concurrent Programming in Java
 
Utilisation de ZK avec Java - Retour d’expérience
Utilisation de ZK avec Java - Retour d’expérienceUtilisation de ZK avec Java - Retour d’expérience
Utilisation de ZK avec Java - Retour d’expérience
 
Introduction of Android Camera1
Introduction of Android Camera1Introduction of Android Camera1
Introduction of Android Camera1
 
Oracle ADF : Vue d'ensemble
Oracle ADF : Vue d'ensembleOracle ADF : Vue d'ensemble
Oracle ADF : Vue d'ensemble
 
Java swings
Java swingsJava swings
Java swings
 
Java programming-Event Handling
Java programming-Event HandlingJava programming-Event Handling
Java programming-Event Handling
 
java drag and drop and data transfer
java drag and drop and data transferjava drag and drop and data transfer
java drag and drop and data transfer
 
java swing programming
java swing programming java swing programming
java swing programming
 
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton ClassesJava Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
 
PHP Basic and Fundamental Questions and Answers with Detail Explanation
PHP Basic and Fundamental Questions and Answers with Detail ExplanationPHP Basic and Fundamental Questions and Answers with Detail Explanation
PHP Basic and Fundamental Questions and Answers with Detail Explanation
 
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Fal-e-Hafez (Omens of Hafez) Cards in Persian using JavaFal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
 
Conditional Statement
Conditional Statement Conditional Statement
Conditional Statement
 

Similaire à JAVA GUI PART III

Upstate CSCI 450 WebDev Chapter 9
Upstate CSCI 450 WebDev Chapter 9Upstate CSCI 450 WebDev Chapter 9
Upstate CSCI 450 WebDev Chapter 9
DanWooster1
 
ITE 1122_ Event Handling.pptx
ITE 1122_ Event Handling.pptxITE 1122_ Event Handling.pptx
ITE 1122_ Event Handling.pptx
udithaisur
 

Similaire à JAVA GUI PART III (20)

Java gui event
Java gui eventJava gui event
Java gui event
 
Javascript Browser Events.pdf
Javascript Browser Events.pdfJavascript Browser Events.pdf
Javascript Browser Events.pdf
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
File Handling
File HandlingFile Handling
File Handling
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
JavaScript - Chapter 11 - Events
 JavaScript - Chapter 11 - Events  JavaScript - Chapter 11 - Events
JavaScript - Chapter 11 - Events
 
Unit 6 Java
Unit 6 JavaUnit 6 Java
Unit 6 Java
 
event handling new.ppt
event handling new.pptevent handling new.ppt
event handling new.ppt
 
event-handling.pptx
event-handling.pptxevent-handling.pptx
event-handling.pptx
 
JAVA PROGRAMMING- GUI Programming with Swing - The Swing Buttons
JAVA PROGRAMMING- GUI Programming with Swing - The Swing ButtonsJAVA PROGRAMMING- GUI Programming with Swing - The Swing Buttons
JAVA PROGRAMMING- GUI Programming with Swing - The Swing Buttons
 
Java Abstract Window Toolkit (AWT) Presentation. 2024
Java Abstract Window Toolkit (AWT) Presentation. 2024Java Abstract Window Toolkit (AWT) Presentation. 2024
Java Abstract Window Toolkit (AWT) Presentation. 2024
 
Java Abstract Window Toolkit (AWT) Presentation. 2024
Java Abstract Window Toolkit (AWT) Presentation. 2024Java Abstract Window Toolkit (AWT) Presentation. 2024
Java Abstract Window Toolkit (AWT) Presentation. 2024
 
Ajp notes-chapter-03
Ajp notes-chapter-03Ajp notes-chapter-03
Ajp notes-chapter-03
 
Discuss how each of the following Java components will assist in creat.docx
Discuss how each of the following Java components will assist in creat.docxDiscuss how each of the following Java components will assist in creat.docx
Discuss how each of the following Java components will assist in creat.docx
 
Upstate CSCI 450 WebDev Chapter 9
Upstate CSCI 450 WebDev Chapter 9Upstate CSCI 450 WebDev Chapter 9
Upstate CSCI 450 WebDev Chapter 9
 
B2. activity and intent
B2. activity and intentB2. activity and intent
B2. activity and intent
 
Event handling
Event handlingEvent handling
Event handling
 
Events and Listeners in Android
Events and Listeners in AndroidEvents and Listeners in Android
Events and Listeners in Android
 
EventBus for Android
EventBus for AndroidEventBus for Android
EventBus for Android
 
ITE 1122_ Event Handling.pptx
ITE 1122_ Event Handling.pptxITE 1122_ Event Handling.pptx
ITE 1122_ Event Handling.pptx
 

Plus de OXUS 20

Java Methods
Java MethodsJava Methods
Java Methods
OXUS 20
 
JAVA Programming Questions and Answers PART III
JAVA Programming Questions and Answers PART IIIJAVA Programming Questions and Answers PART III
JAVA Programming Questions and Answers PART III
OXUS 20
 

Plus de OXUS 20 (15)

Java Arrays
Java ArraysJava Arrays
Java Arrays
 
Java Methods
Java MethodsJava Methods
Java Methods
 
Structure programming – Java Programming – Theory
Structure programming – Java Programming – TheoryStructure programming – Java Programming – Theory
Structure programming – Java Programming – Theory
 
Java Applet and Graphics
Java Applet and GraphicsJava Applet and Graphics
Java Applet and Graphics
 
Fundamentals of Database Systems Questions and Answers
Fundamentals of Database Systems Questions and AnswersFundamentals of Database Systems Questions and Answers
Fundamentals of Database Systems Questions and Answers
 
Everything about Database JOINS and Relationships
Everything about Database JOINS and RelationshipsEverything about Database JOINS and Relationships
Everything about Database JOINS and Relationships
 
Create Splash Screen with Java Step by Step
Create Splash Screen with Java Step by StepCreate Splash Screen with Java Step by Step
Create Splash Screen with Java Step by Step
 
Web Design and Development Life Cycle and Technologies
Web Design and Development Life Cycle and TechnologiesWeb Design and Development Life Cycle and Technologies
Web Design and Development Life Cycle and Technologies
 
Java Unicode with Cool GUI Examples
Java Unicode with Cool GUI ExamplesJava Unicode with Cool GUI Examples
Java Unicode with Cool GUI Examples
 
Java Regular Expression PART II
Java Regular Expression PART IIJava Regular Expression PART II
Java Regular Expression PART II
 
Java Regular Expression PART I
Java Regular Expression PART IJava Regular Expression PART I
Java Regular Expression PART I
 
Java Guessing Game Number Tutorial
Java Guessing Game Number TutorialJava Guessing Game Number Tutorial
Java Guessing Game Number Tutorial
 
JAVA Programming Questions and Answers PART III
JAVA Programming Questions and Answers PART IIIJAVA Programming Questions and Answers PART III
JAVA Programming Questions and Answers PART III
 
Object Oriented Programming with Real World Examples
Object Oriented Programming with Real World ExamplesObject Oriented Programming with Real World Examples
Object Oriented Programming with Real World Examples
 
Object Oriented Concept Static vs. Non Static
Object Oriented Concept Static vs. Non StaticObject Oriented Concept Static vs. Non Static
Object Oriented Concept Static vs. Non Static
 

Dernier

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Dernier (20)

HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Tatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf artsTatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf arts
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
Basic Intentional Injuries Health Education
Basic Intentional Injuries Health EducationBasic Intentional Injuries Health Education
Basic Intentional Injuries Health Education
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 

JAVA GUI PART III

  • 1. » GUI ˃ Events ˃ Event Handling https://www.facebook.com/Oxus20 oxus20@gmail.com JAVA GUI PART III Milad Kawesh
  • 2. Agenda » Events » Java Delegation Model » Event Handling » Practical Examples 2 https://www.facebook.com/Oxus20
  • 3. Windows based Java Programs » Console-Based Programming ˃ Every thing is predetermined ˃ The program code determines the sequence of events » Window-Based Programming ˃ The operation is driven by what you do with the GUI ˃ Selecting menu items, buttons, or keyboard causes particular actions within a program ˃ The specific program that is executed next is not known https://www.facebook.com/Oxus20 3
  • 4. Event driven Programming » The signals that a program receives from the OS as a result of your actions are called events » A window based program is called event driven program » Unlike the old rigid old sequential programs, » it puts user in charge, user control the sequence of program » Application waits for the user action » This approach is called event driven programming 4 https://www.facebook.com/Oxus20
  • 5. The Event Handling Process » Suppose a user clicks a button in the GUI ˃ Button is the source of the event » When a button is clicked, it will create a new object that have information about event and its source (in this case ActionListener) » This object is passed to a method that handles the event in its listener » A listener is called Target of an event 5 https://www.facebook.com/Oxus20
  • 6. Delegation Event Model » The way in which events are handled in Java, using listener objects, is called delegation event model » We can make objects of any class listener objects by making the class implement a listener interface » In case of the button, the ActionListener interface needs to be implemented to receive events from button » actionPerformed(ActionEvent e) is called when the event occurs and the event object is passed as an argument https://www.facebook.com/Oxus20 6
  • 7. Java Events » Events are objects ˃ Objects that represent user initiated actions ˃ Examples: + button clicked -> ActionEvent + mouse dragged -> MouseEvent + Enter key pressed -> KeyEvent ˃ EventObject; root event class for all event objects ˃ AWTEvent; root event class for all AWT events ˃ Package java.awt.event + Provides interfaces and classes for dealing with different types of events fired by AWT components. 7 https://www.facebook.com/Oxus20
  • 9. Event Handling » Programmer choice to decide how to handle the generated event ˃ Ignore the Event ˃ Have the Event handled by the component where the event was generated (Self Contained Event handling) ˃ Delegate event handling to some other object called Listeners (Event Delegation) 9 https://www.facebook.com/Oxus20
  • 10. Event Delegation » Some time component on which event was generated is not best suited to handle its own event » The process of assigning an object to handle a component’s events is called delegation. » The event handling objects are called Listeners 10 https://www.facebook.com/Oxus20
  • 11. Key Methods of Event » Object getSource() In ObjectEvent, return the component in which event took place. » int getID() In AwtEvent, return int that describes the nature of the event e.g. on MouseEvent it will give MOUSE_PRESSED, MOUSE_DRAGGED. 11 https://www.facebook.com/Oxus20
  • 12. Event Listeners » Interfaces to support dispatching of events » Each Event class has a corresponding Listener interface » Multiple listeners for the same event type » Each interface will have one or more method corresponding to types of events » ActionEvent -> ActionListener » MouseEvent -> MouseListener and MouseMotionListener https://www.facebook.com/Oxus20 12
  • 13. Registering Listeners » Listeners register themselves with component ˃ public void addXXXListener(XXXListener) ˃ addActionListener, addItemListener, etc. » Multiple listeners can be registered for the same event on a component ˃ One event can trigger numerous responses ˃ Events are broadcast to all listeners 13 https://www.facebook.com/Oxus20
  • 14. Wiring a Listener » Define a class to implement the Listener Interface Public class Applet extends Applet implements ActionListener public class MyClass implements ActionListener { » Add the implementation of the Interface … public void actionPerformed(ActionEvent e) { // here’s where I do stuff when the action happens … » Add class as a Listener to Component … Button ok = new Button(“OK”) ok.addActionListener(this); 14 https://www.facebook.com/Oxus20
  • 15. ActionListener Example import import import import import javax.swing.*; java.awt.FlowLayout; java.awt.Dimension; java.awt.event.ActionListener; java.awt.event.ActionEvent; public class ActionListenerTest extends JFrame implements ActionListener { JTextArea topTextArea; JTextArea bottomTextArea; JButton button1, button2; final static String newline = "n"; 15 https://www.facebook.com/Oxus20
  • 16. ActionListener Example (cont.) public ActionListenerTest() { setLayout(new FlowLayout()); topTextArea = new JTextArea(); topTextArea.setEditable(false); JScrollPane topScrollPane = new JScrollPane(topTextArea); topScrollPane.setPreferredSize(new Dimension(200, 75)); add(topScrollPane); bottomTextArea = new JTextArea(); bottomTextArea.setEditable(false); JScrollPane bottomScrollPane = new JScrollPane(bottomTextArea); bottomScrollPane.setPreferredSize(new Dimension(200, 75)); 16 https://www.facebook.com/Oxus20
  • 17. ActionListener Example (cont.) add(bottomScrollPane); button1 = new JButton("top Text area"); add(button1); button2 = new JButton("down text area"); add(button2); button1.addActionListener(this); button2.addActionListener(this); setSize(300, 222); setResizable(false); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } 17 https://www.facebook.com/Oxus20
  • 18. ActionListener Example(cont.) public void actionPerformed(ActionEvent e) { if (e.getSource() == button1) { topTextArea.append(e.getActionCommand() + newline); } if (e.getSource() == button2) { bottomTextArea.append(e.getActionCommand() + newline); } } public static void main(String[] args) { new ActionListenerTest(); } } 18 https://www.facebook.com/Oxus20