Unit 111 Event-Driven Programming Listener or Event handler Example: Handling Button Events Example: Handling Mouse Events Example: Handling Keyboard Events.

Slides:



Advertisements
Similar presentations
Event handling and listeners What is an event? user actions and context event sources and listeners Why should my programs be event- driven? User interaction.
Advertisements

1 Event Listeners Some Events and Their Associated Event Listeners Act that Results in the EventListener Type User clicks a button, presses Enter while.
Slides prepared by Rose Williams, Binghamton University Mouse Events + Chapter 17: Applets.
Event Handling. In this class we will cover: Basics of event handling The AWT event hierarchy Semantic and low-level events in the AWT.
Event Handling Events and Listeners Timers and Animation.
Events ● Anything that happens in a GUI is an event. For example: – User clicks a button, presses return when typing text, or chooses a menu item ( ActionEvent.
For IST410 Students only Events-1 Event Handling.
Event-Driven Programming
Event-Driven Programming
Slides prepared by Rose Williams, Binghamton University Chapter 18 Applets.
Unit 101 Java GUI Components and Events  GUI Components and Containers  Adding Components to Containers  GUI Events  GUI Events Classes  Learning.
1 Gui Programming (Part I) Graphical User Interfaces (Part I) l Introduction to events. l A Brief history. l Event sources and listeners. l The delegation.
Unit 111 Java GUI Components and Events  Learning Outcomes oDistinguish between GUI components and containers. oIdentify and distinguish top-level containers.
Lecture 19 Graphics User Interfaces (GUIs)
1 lecture 12Lecture 13 Event Handling (cont.) Overview  Handling Window Events.  Event Adapters Revisited.  Introduction to Components and Containers.
GUI Event Handling Nithya Raman. What is an Event? GUI components communicate with the rest of the applications through events. The source of an event.
Chapter 8: Graphical User Interfaces Objectives - by the end of this chapter, you should be able to do the following: –write a simple graphical user interface.
Introduction to GUI Java offers a great number of pre-defined classes to support the development of graphical user interfaces –These are broken down into.
1 Event Driven Programming wirh Graphical User Interfaces (GUIs) A Crash Course © Rick Mercer.
1 CSC111H Graphical User Interfaces (GUIs) Introduction GUIs in Java Understanding Events A Simple Application The Containment Hierarchy Layout Managers.
MIT AITI 2003 Lecture 17. Swing - Part II. The Java Event Model Up until now, we have focused on GUI's to present information (with one exception) Up.
Java GUI CSCE 190 – Java Instructor: Joel Gompert Mon, July 26, 2004.
GUI programming Graphical user interface-based programming.
1 Event Driven Programs Rick Mercer. 2 So what happens next?  You can layout a real pretty GUI  You can click on buttons, enter text into a text field,
More Event Handling Adapters Anonymous Listeners Pop menus Validating User Input.
GUI Components and Design Here we add one more component to our programs, JButtons –JButtons can only be inserted into JPanels (or JApplets) –Clicking.
Java GUI’s are event driven, meaning they generate events when the user interacts with the program. Typical events are moving the mouse, clicking a mouse.
Dale Roberts GUI Programming using Java - Event Handling Dale Roberts, Lecturer Computer Science, IUPUI Department of Computer.
1 Outline 1 Introduction 2 Overview of Swing Components 3 JLabel 4 Event Handling 5 TextFields 6 How Event Handling Works 7 JButton 8 JCheckBox and JRadioButton.
Graphic User Interface. Graphic User Interface (GUI) Most of us interact with computers using GUIs. GUIs are visual representations of the actions you.
COMP 321 Week 2. Outline Event-Driven Programming Events, Event Sources, Event Listeners Button and Timer Events Mouse Events, Adapters.
Creating a GUI with JFC/Swing. What are the JFC and Swing? JFC –Java Foundation Classes –a group of features to help people build graphical user interfaces.
UID – Event Handling and Listeners Boriana Koleva
Event Handling. 2 GUIs are event driven –Generate events when user interacts with GUI e.g., moving mouse, pressing button, typing in text field, etc.
CS-1020 Dr. Mark L. Hornick 1 Event-Driven Programming.
Java GUI. Graphical User Interface (GUI) a list a button a text field a label combo box checkbox.
Anonymous Classes An anonymous class is a local class that does not have a name. An anonymous class allows an object to be created using an expression.
CMSC 341 Making Java GUIs Functional. 09/29/2007 CMSC 341 Events 2 More on Swing Great Swing demo at /demos/jfc/SwingSet2/SwingSet2Plugin.html.
Object Oriented Programming.  Interface  Event Handling.
Agenda Introduction. Event Model. Creating GUI Application. Event Examples.
Index Event Handling Events Event Source Event Listener Event Classes Action Event Class Adjustment event Class Event Source Event Listener Interface Using.
A simple swing example GETTING STARTED WITH WIND CHILL.
GUI DYNAMICS Lecture 11 CS2110 – Fall GUI Statics and GUI Dynamics  Statics: what’s drawn on the screen  Components buttons, labels, lists, sliders,
Java the UML Way versjon Only to be used in connection with the book "Java the UML Way", by Else Lervik and.
Graphical User Interfaces A Graphical User Interface (GUI) in Java is created with at least three kinds of objects: –components, events, and listeners.
Event-Driven Programming CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Event-Driven Programming F Procedural programming is executed in procedural order. F In event-driven programming, code is executed upon activation of events.
What Is an Event? Events – Objects that describe what happened Event sources – The generator of an event Event handlers – A method that receives an event.
CSI 3125, Preliminaries, page 1 Event Handling. CSI 3125, Preliminaries, page 2 Event Handling An Event Change in the state of an object is known as event.
Mouse Events GUI. Types of Events  Below, are some of the many kinds of events, swing components generate. Act causing EventListener Type User clicks.
Event Handling and Listeners in SWING The practice of event handling.
Chapter 10 - Writing Graphical User Interfaces1 Chapter 10 Writing Graphical User Interfaces.
Swing GUI Components So far, we have written GUI applications which can ‘ draw ’. These applications are simple, yet typical of all Java GUI applications.
Event Handling CS 21a: Introduction to Computing I First Semester,
Sep 181 Example Program DemoTranslateEnglishGUI.java.
MIT AITI 2004 Swing Event Model Lecture 17. The Java Event Model In the last lecture, we learned how to construct a GUI to present information to the.
5-1 GUIs and Events Rick Mercer. 5-2 Event-Driven Programming with Graphical user Interfaces  Most applications have graphical user interfaces to respond.
TENTH LECTURE Event and listener. Events and Listeners An event can be defined as a type of signal to the program that something has happened. The event.
Chapter 14 Applets. Applets: Introduction Java programs are divided into two main categories, applets and applications An application is an ordinary Java.
Dept. of CSIE, National University of Tainan 10/21/2012 Responding to User Input.
Prepared by: Dr. Abdallah Mohamed, AOU-KW Unit7: Event-driven programming 1.
Events and Event Handling
Chapter 14 Event-Driven Programming
CompSci 230 S Programming Techniques
Chapter 12 Event-Driven Programming
Event Handling Chapter 2 Objectives
Event Handling CS 21a: Introduction to Computing I
GUI Event Handling Nithya Raman.
GUI Programming III: Events
Event-driven programming for GUI
Presentation transcript:

Unit 111 Event-Driven Programming Listener or Event handler Example: Handling Button Events Example: Handling Mouse Events Example: Handling Keyboard Events Adapter Classes Example: Handling Window Events Example: Handling Text Field Events Exercises Learning Outcomes oExtend the example programs to write more interesting GUI oUse nested classes and adapter classes to write medium-sized applications.

Unit 112 Listener or Event handler Listener: An object interested in being notified when an event occurs in a given component. A Listener object registers with a component to be notified of events generated by it. Listener must implement the event listener interface associated with events for which it registered. Programming a Listener for an event means: Implementing the interface associated with the event type. Registering it as an event listener on the appropriate event source.

Unit 113 Events Revisited Some events are generated only by certain components. But we can set up a listener on any component for any of the following events: –Component event - changing a component's size, position, or visibility. –Focus event - gaining or losing the keyboard focus. –Key event - pressing, releasing, or clicking keyboard keys. –Mouse event - clicking the mouse button and moving the mouse onto and off of a component. –Mouse motion event - moving or dragging a mouse over a component.

Unit 114 Events and Event listeners Some Events and Their Associated Event Listeners Act that Results in the EventListener Type User clicks a button, presses Enter while typing in a text field, or chooses a menu item ActionListener User closes a frame (main window)WindowListener User presses a mouse button while the cursor is over a component MouseListener User moves the mouse over a componentMouseMotionListener Component becomes visibleComponentListener Component gets the keyboard focusFocusListener Any property in a component changes such as the text on a label PropertyChangeListener When an item such as a check box is changedItemListener

Unit 115 Each event is represented by an object –Contains information about the event Event source –Generates event –Usually a GUI component Event listener –Responds to the event –Can be any Java class that implements correct interface User clicks a button -- ActionListener User closes a frame -- WindowListener User presses a mouse button -- MouseListener User moves the mouse -- MouseMotionListener Component becomes visible -- ComponentListener A single source can have multiple listeners A single listener can listen to multiple sources Event Handling

Unit 116 –Every event handler requires three pieces of code: Code that specifies that the class implements a listener interface. public class MyClass implements ActionListener { Code that registers an instance of the event handler class as a listener upon one or more components. someComponent.addActionListener(instance Of MyClass); Code that implements the methods in the listener interface. For example: public void actionPerformed(ActionEvent e) {...//code that responds to the event... } Event Handling

Unit 117 Example 1: Adding Components to Containers 1 import java.awt.*; 2 import javax.swing.*; 3 public class AddingComponents extends JFrame{ 4 JButton button = new JButton("Press Me"); 5 JLabel label = new JLabel( "Running Total:"); 6 JTextField textField = new JTextField(10); 7 Container cp = getContentPane(); 8 public AddingComponents() { 9 super("A Container With Components"); 10 setSize(300,100); 11 cp.setLayout(new FlowLayout()); 12 cp.add(label); 13 cp.add(textField); 14 cp.add (button); 15 setVisible(true); } 16 public static void main(String args []) { 17 new AddingComponents(); 18 } }

Unit 118 Handling Button Events This example builds on Example 1 of the preceding section. Notice that when the button is pushed in that example, nothing happens. We will add some code to respond to the button pushes. When the mouse is pushed it generates and ActionEvent. Thus, we will be implementing the corresponding ActionListener interface. ActionListener consists of the method:

Unit 119 Example 2: Button Events 1 import java.awt.*; 2 import java.awt.event.*; 3 class ButtonEventTest extends AddingComponents 4 implements ActionListener{ 5 private int sum; 6 public ButtonEventTest() { 7 button.addActionListener(this); 8 } 9 public void actionPerformed(ActionEvent ae) { 10 sum += 1; 11 textField.setText(sum+""); 12 Toolkit.getDefaultToolkit().beep(); 13 } 14 public static void main(String args []) { 15 new ButtonEventTest(); 16 } 17 }

Unit 1110 Handling Mouse Events This example illustrates how mouse events can be responded to. It also shows how a single listener can register with many sources. The event listener in this case will implement the MouseListener interface. MouseListener consists of five methods: The program is given in the following page.

Unit 1111 Example 3: Mouse Events 1 import java.awt.*; import java.awt.event.*; 2 public class MouseEventTest extends ButtonEventTest{ 3 public MouseEventTest(){ 4 class LightUpListener extends MouseAdapter { 5 public void mouseEntered(MouseEvent e) { 6 Component c = (Component)e.getSource(); 7 c.setBackground(Color.green); 8 } 9 public void mouseExited(MouseEvent e) { 10 Component c = (Component)e.getSource(); 11 c.setBackground(Color.red); 12 } 13 } 14 MouseListener listener = new LightUpListener(); 15 button.addMouseListener(listener); 16 textField.addMouseListener(listener); 17 cp.addMouseListener(listener); 18 } 19 public static void main(String[] args) { 20 new MouseEventTest(); 21 } } a single listener can register with many sources

Unit 1112 Handling Keyboard Events This example illustrates how keyboard events can be responded to. To receive KeyEvent, a component must have keyboard focus. We will be implementing the KeyListener interface. KeyListener consists of three methods: Notice that when you press a key, at least two events are generated.

Unit 1113 Example 4: Keyboard Events 1 import java.awt.*; import java.awt.event.*; 2 import javax.swing.JApplet; 3 public class KeyEventTest extends JApplet implements KeyListener{ 4 private String msg = ""; 5 private int startX = 10, startY = 10; 6 public void keyPressed(KeyEvent ke){ 7 showStatus ("Key Down"); 8 } 9 public void keyReleased(KeyEvent ke) {showStatus("Key Up"); } 10 public void keyTyped(KeyEvent ke){ 11 msg += ke.getKeyChar(); 12 repaint(); 13 } 14 public void init(){ 15 requestFocus(); 16 addKeyListener(this); 17 } 18 public void paint(Graphics g){ 19 g.drawString(msg,startX,startY); 20 } 21 }

Unit 1114 Introduction to Adapter Classes From previous examples, listener interfaces can have several methods. A particular listener may not be interested in all the methods. Nevertheless, the listener must implement all methods in the interface. Java provides adapter classes for implementing handlers selectively. Most listener interfaces with two or more methods have matching adapter classes. Java provides a collection of abstract event adapter classes. These adapter classes implement listener interfaces with empty, do-nothing methods. To implement a listener class, we extend an adapter class and override only methods needed.

Unit 1115 Handling Window Events This example shows how window events can be handled. The listener should implement the WindowListener interface. WindowListener consists of seven methods: We will extend the corresponding WindowAdapter in this example.

Unit 1116 Example 5: Window Events 1 import javax.swing.*;import java.awt.event.*; 2 class WindowEventTest extends JFrame{ 3 private String msg = "Are you sure you want to Quit Window?"; 4 public WindowEventTest() { 5 super("Window Event Test"); setSize(300,300); 6 addWindowListener(new WindowAdapter(){ 7 public void windowClosing(WindowEvent we) { 8 WindowEventTest obj = WindowEventTest.this; 9 int result = JOptionPane.showConfirmDialog(obj, msg); 10 if (result == JOptionPane.YES_OPTION) 11 System.exit(0); 12 else { 13 int keepOpen = WindowConstants.DO_NOTHING_ON_CLOSE; 14 setDefaultCloseOperation(keepOpen); 15 } 16 }}); 17 } 18 public static void main(String args [] ) { 19 WindowEventTest wt = new WindowEventTest(); 20 wt.setVisible(true); 21 } }

Unit 1117 Handling Text Field Events This example shows how texfield events are generated and handled. It also illustrates the use of multiple handlers. Two text fields are shown handling an ActionEvent in different ways. The program implements Celcius to Fahrenheit temperature conversions. You enter a temperature value in one text field and get the equivalent in the other. The complete program follows in the next page.

Unit 1118 Example 6: Text Field Events 1 import java.awt.*; 2 import java.awt.event.*; 3 import javax.swing.*; 4 class TextFieldEventTest extends JFrame{ 5 JTextField celcius = new JTextField(10); 6 JTextField fahrenheit = new JTextField(10); 7 Container c = getContentPane(); 8 TextFieldEventTest(){ 9 c.setLayout(new FlowLayout()); 10 c.add(new JLabel("Celcius")); 11 c.add(celcius); 12celcius.addActionListener(new ActionListener() { 13 public void actionPerformed(ActionEvent ae){ 14 String cString = celcius.getText(); 15 double cValue = Double.parseDouble(cString.trim()); 16 double fValue = cValue*9.0/ ; 17 fahrenheit.setText((int)fValue+""); 18 }});

Unit 1119 Text Field Events – Cont’d 31 public static void main(String [] args){ 32 TextFieldEventTest t = new TextFieldEventTest(); 33 t.pack(); 34 t.show(); 35 } 36 } 20 c.add(new JLabel("Fahrenheit")); 21 c.add(fahrenheit); 22 fahrenheit.addActionListener(new ActionListener() { 23 public void actionPerformed(ActionEvent ae){ 24 String fString = fahrenheit.getText(); 25 double fValue = Double.parseDouble(fString.trim()); 26 double cValue = (fValue-32.0)*5.0/9.0; 27 celcius.setText((int)cValue+""); 28 } 29 }); 30 } // end of constructor

Unit 1120 Review Exercises 1.Extend Example 1 by adding a Reset Total button. When the Reset Total button is pushed, the running total should be reset to zero. 2.Modify the program in Example 2 to work as a stand-alone application. 3.Modify the program in Example 3 to display its output on the application’s JFrame window. 4.Modify the program in Example 4 to use an anonymous inner class to implement the windowClosing() handler method. 5.Extend Example 5 to validate the data entered in both text fields to avoid the spurious exceptions currently raised when invalid characters are included in the input.

Unit 1121 Review Exercises (cont’d) 6.A student has written a working applet. Write a step-by-step procedure that guides the student to make his applet work as an application also. 7.Consider the program in Example 1. Write down all the events generated from the time the frame is displayed up to the time the user pushes the PushMe button. You may restrict your answer to the events covered in this section.