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);