09 Event Handling
09 Event Handling
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
• Define a class of that type
– Implement interface (KeyListener, MouseListener, etc.)
– Extend class (KeyAdapter, MouseAdapter, etc.)
• Register an object of your listener class
with the window
– w.addXxxListener(new MyListenerClass());
• E.g., addKeyListener, addMouseListener
5 J2EE training: http://courses.coreservlets.com
Handling Events with a
Separate Listener: Simple Case
• Listener does not need to call any methods
of the window to which it is attached
import java.applet.Applet;
import java.awt.*;
Implementing a Listener
Interface (Continued)
public void mouseEntered(MouseEvent event) {}
public void mouseExited(MouseEvent event) {}
public void mouseReleased(MouseEvent event) {}
public void mouseClicked(MouseEvent event) {}
@Override Example
public class CircleDrawer1 extends Applet {
@Override
public void init() {
setForeground(Color.BLUE);
addMouseListener(new CircleListener());
}
}
...
private class LineDrawer extends MouseMotionAdapter {
public void mouseDragged(MouseEvent event) {
int x = event.getX();
int y = event.getY();
Graphics g = getGraphics();
g.drawLine(lastX, lastY, x, y);
record(x, y);
}
}
}
Whiteboard (Results)
Questions?