CIS525 - Lecture#14 - October 23, 2000
CIS 525 10/23/00
no Dilbert today...funny 'State Sucks' t-shirt instead
Handling events in Java
Java 1.0.2
sent to handle event method of top-most graphical component that the event applies to
page 450
public boolean handleEvent(Event event);
{
switch(event.id) {
case Event.MOUSE_DOWN:
return(mouseDown(event, event.s, event.y));
case Event.MOUSE_UP:
return(mouseUp(event, event.x, event.y));
...
...
default: return(false);
}
}
whenever possible override helper mehtods:
mouseDown
keyDown
gotFocus
action
=> try NOT to override handleEvent
see Hall for Java programs EventPanel.java
list of events pages 471-3
SimpleWhiteboard.java page 474-80
Whiteboard.java page 478, (can enter text at point of cursor)
Handling events in Java1.1
wcs delegation, more efficient event handling
'listeners' - classes that have methods specifically for an event - page 481
a) make the listener
b) register with the component
making a listener:
creating object that implements an interface for an AWT event type
public class MyActionListener implements ActionsListener{
=> use type adapter class that contains empty methods for any method not overriden
(listen has more than on method)
example page 481
public void AnotherKeyListener extends KeyAdapter {
public void keyTyped(KeyEvent event) {...}
// ignore keyPressed and keyReleased
Mirror.java page 484
Event Listeners in Java 1.1 page 492
inner classes: (Java 1.1)
=> create nested classes
=> allows anonymous classes created within expressions
anonymous class example page 485
someType st=
new someType() {
//class dfn
};
doSomething(st);
Circles.java, page 487, uses inner class
allows you to override low level mouse handlers, but be sure to ccall the 'super-handler'
example page 489
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
enableEvents(AWTEvent.KEY_EVENT_MASK);
enableEvents(AWTEvent.FOCUS_EVENT_MASK);