21- Event handling in java
-
Upload
raja-kumar -
Category
Education
-
view
121 -
download
1
description
Transcript of 21- Event handling in java
![Page 1: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/1.jpg)
Making Applications Interactive
1
![Page 2: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/2.jpg)
GUIs are event driven Generate events when user interacts with GUI
e.g., moving mouse, pressing button, typing in text field, etc.
2
![Page 3: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/3.jpg)
Event source Event listener
Event object
Event handling methods
3
![Page 4: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/4.jpg)
Object
EventObject
AWTEvent
ActionEvent
AdjustmentEvent
ItemEvent
TextEvent
ContainerEvent
FocusEvent
PaintEvent
WindowEvent
InputEvent
MouseWheelEvent
ComponentEvent
KeyEvent MouseEvent
Object
EventObject
AWTEvent
ComponentEvent
TextEvent
ItemEvent
AdjustmentEvent
ActionEvent
WindowEvent
InputEvent
MouseEventKeyEvent
MouseWheelEvent
FocusEvent
PaintEvent
ContainerEvent
4
![Page 5: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/5.jpg)
Event-handling model Three parts
Event source GUI component with which user interacts
Event object Encapsulates information about event that occurred
Event listener Receives event object when notified, then responds
Programmer must perform two tasks Register event listener for event source Implement event-handling method (event handler)
5
![Page 6: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/6.jpg)
interface EventListener
interface ActionListener
interface AdjustmentListener
interface ComponentListener
interface ContainerListener
interface FocusListener
interface ItemListener
interface KeyListener
interface MouseListener
interface MouseMotionListener
interface TextListener
interface WindowListener
«interface»EventListener
«interface»ActionListener
«interface»AdjustmentListener
«interface»ComponentListener
«interface»ContainerListener
«interface»FocusListener
«interface»ItemListener
«interface»KeyListener
«interface»MouseListener
«interface»MouseMotionListener
«interface»TextListener
«interface»WindowListener
6
![Page 7: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/7.jpg)
Listener Adapter class (if any) Registration method
ActionListener addActionListener
AdjustmentListener addAdjustmentListener
ComponentListener ComponentAdapter addComponentListener
ContainerListener ContainerAdapter addContainerListener
FocusListener FocusAdapter addFocusListener
ItemListener addItemListener
KeyListener KeyAdapter addKeyListener
MouseListener MouseAdapter addMouseListener
MouseMotionListener MouseAdapter addMouseMotionListener
TextListener addTextListener
WindowListener WindowAdapter addWindowListener
7
![Page 8: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/8.jpg)
Act that Results in the Event Listener 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 component MouseMotionListener
Component becomes visible ComponentListener
Component gets the keyboard focus FocusListener
Table or list selection changes ListSelectionListener
Any property in a component changes such as the text on a label
PropertyChangeListener
8
![Page 9: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/9.jpg)
ActionListener Handles buttons and a few other actions
actionPerformed(ActionEvent event)
AdjustmentListener Applies to scrolling
adjustmentValueChanged(AdjustmentEvent event)
ComponentListener Handles moving/resizing/hiding GUI objects
componetResized(ComponentEvent event) componentMoved(ComponentEvent event) componentShown(ComponentEvent event) componentHidden(ComponentEvent event)
9
![Page 10: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/10.jpg)
ContainerListener Triggered when window adds/removes GUI controls componentAdded(ContainerEvent event) componentRemoved(ContainerEvent event)
FocusListener Detects when controls get/lose keyboard focus focusGained(FocusEvent event) focusLost(FocusEvent event)
10
![Page 11: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/11.jpg)
ItemListener Handles selections in lists, checkboxes, etc.
itemStateChanged(ItemEvent event)
KeyListener Detects keyboard events
keyPressed(KeyEvent event) – any key pressed down
keyReleased(KeyEvent event) – any key released keyTyped(KeyEvent event) – key for printable char
released
11
![Page 12: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/12.jpg)
MouseListener Applies to basic mouse events
mouseEntered(MouseEvent event) mouseExited(MouseEvent event) mousePressed(MouseEvent event) mouseReleased(MouseEvent event) mouseClicked(MouseEvent event) – release
without drag Applies on release if no movement since pressed
MouseMotionListener Handles mouse movement
mouseMoved(MouseEvent event) mouseDragged(MouseEvent event)
12
![Page 13: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/13.jpg)
TextListener Applies to textfields and text areas
textValuedChanged(TextEvent event)
WindowListener Handles high-level window events
windowOpened, windowClosing, windowClosed, windowIconified, windowDeiconified, windowActivated, windowDeactivated
13
![Page 14: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/14.jpg)
Button ActionListener
ActionEvent
actionPerformed(..)
14
![Page 15: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/15.jpg)
o is an event sourceh is an event listener of type XXX
o.addXXX(h)
where XXX is one of the following:
ActionListener
MouseListener
MouseMotionListener
KeyListener
WindowListener
ComponentListener
FocusListener
TextListener
AdjustmentListener
ItemListener15
![Page 16: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/16.jpg)
interface ActionListener {
public void actionPerformed(ActionEvent e);
} Possible event sources
Button List TextField MenuItem
16
![Page 17: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/17.jpg)
import javax.swing.*;import java.awt.event.*;public class TestButtonAction { public static void main(String[] args){ JFrame f = new JFrame("TestButton"); f.setSize(200,200); JButton hw = new JButton("Hello World!"); f.add(hw); hw.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){
System.exit(0); } }); f.setVisible(true); }}
17
![Page 18: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/18.jpg)
18
class MyFrame extends JFrame implements ActionListener { Button hw; public MyFrame(){
super("Test Button");setSize(200,200);hw = new Button("Hello World!");add(hw);hw.addActionListener(this);setVisible(true);
} public void actionPerformed(ActionEvent o){
System.exit(0); }}
![Page 19: 21- Event handling in java](https://reader033.fdocuments.net/reader033/viewer/2022061218/54b75a754a79594f0d8b45ee/html5/thumbnails/19.jpg)
19
class MyFrame extends JFrame { Button hw; public MyFrame(){
super("Test Button");setSize(200,200);hw = new Button("Hello World!");add(hw);hw.addActionListener(new MyActionListener());setVisible(true);
//Inner classclass MyActionListener implements ActionListener{
public void actionPerformed(ActionEvent o){System.exit(0);
}}
}}