Java Events
Java Events
Web
programming
Agenda
www.corewebprogramming.com
General Strategy
Determine what type of listener is of interest
11 standard AWT listener types, described on later slide.
ActionListener, AdjustmentListener,
ComponentListener, ContainerListener,
FocusListener, ItemListener, KeyListener,
MouseListener, MouseMotionListener, TextListener,
WindowListener
www.corewebprogramming.com
www.corewebprogramming.com
www.corewebprogramming.com
www.corewebprogramming.com
www.corewebprogramming.com
www.corewebprogramming.com
Case 2: Implementing a
Listener Interface
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class CircleDrawer2 extends Applet
implements MouseListener {
private int radius = 25;
public void init() {
setForeground(Color.blue);
addMouseListener(this);
}
10
www.corewebprogramming.com
Implementing a Listener
Interface (Continued)
public
public
public
public
void
void
void
void
mouseEntered(MouseEvent event) {}
mouseExited(MouseEvent event) {}
mouseReleased(MouseEvent event) {}
mouseClicked(MouseEvent event) {}
11
www.corewebprogramming.com
12
www.corewebprogramming.com
www.corewebprogramming.com
www.corewebprogramming.com
Disadvantage
Need extra step to call methods in main window
Disadvantage
Must implement methods you might not care about
15
www.corewebprogramming.com
Disadvantage
A bit harder to understand
Disadvantage
Much harder to understand
16
www.corewebprogramming.com
Listener
ActionListener
AdjustmentListener
ComponentListener
ContainerListener
FocusListener
ItemListener
KeyListener
MouseListener
MouseMotionListener
TextListener
WindowListener
17
ComponentAdapter
ContainerAdapter
FocusAdapter
KeyAdapter
MouseAdapter
MouseMotionAdapter
WindowAdapter
Registration Method
addActionListener
addAdjustmentListener
addComponentListener
addContainerListener
addFocusListener
addItemListener
addKeyListener
addMouseListener
addMouseMotionListener
addTextListener
addWindowListener
www.corewebprogramming.com
actionPerformed(ActionEvent event)
AdjustmentListener
Applies to scrolling
adjustmentValueChanged(AdjustmentEvent event)
ComponentListener
Handles moving/resizing/hiding GUI objects
18
componentResized(ComponentEvent event)
componentMoved (ComponentEvent event)
componentShown(ComponentEvent event)
componentHidden(ComponentEvent event)
www.corewebprogramming.com
FocusListener
Detects when controls get/lose keyboard focus
focusGained(FocusEvent event)
focusLost(FocusEvent event)
19
www.corewebprogramming.com
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
20
www.corewebprogramming.com
10
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 press
MouseMotionListener
Handles mouse movement
mouseMoved(MouseEvent event)
mouseDragged(MouseEvent event)
21
www.corewebprogramming.com
WindowListener
Handles high-level window events
windowOpened, windowClosing, windowClosed,
windowIconified, windowDeiconified,
windowActivated, windowDeactivated
windowClosing particularly useful
22
www.corewebprogramming.com
11
Double clicks
Determined by OS, not by programmer
Call event.getClickCount()
www.corewebprogramming.com
24
www.corewebprogramming.com
12
www.corewebprogramming.com
26
www.corewebprogramming.com
13
27
www.corewebprogramming.com
28
www.corewebprogramming.com
14
29
www.corewebprogramming.com
Whiteboard (Continued)
...
private class CharDrawer extends KeyAdapter {
// When user types a printable character,
// draw it and shift position rightwards.
public void keyTyped(KeyEvent event) {
String s = String.valueOf(event.getKeyChar());
getGraphics().drawString(s, lastX, lastY);
record(lastX + fm.stringWidth(s), lastY);
}
}
}
30
www.corewebprogramming.com
15
Whiteboard (Results)
31
www.corewebprogramming.com
Summary
General strategy
Determine what type of listener is of interest
Check table of standard types
Understanding listeners
Methods give specific behavior.
Arguments to methods are of type XxxEvent
Methods in MouseEvent of particular interest
32
www.corewebprogramming.com
16
core
Web
programming
Questions?
33
Preview
Whiteboard had freehand drawing only
Need GUI controls to allow selection of other drawing
methods
34
www.corewebprogramming.com
17