Java in a Nutshell

Previous Chapter 18
The java.awt Package
Next
 

18.3 java.awt.AWTEventMulticaster (JDK 1.1)

AWTEventMulticaster is a convenience class used when writing a custom AWT component. It provides an easy way to maintain a list of AWT EventListener objects, and to notify the listeners on that list when an event occurs.

AWTEventMulticaster implements each of the event listener interfaces defined in the java.awt.event package, which means that an AWTEventMulticaster object can serve as any desired type of event listener. (It also means, as you can see below, that the class defines quite a few methods.) AWTEventMulticaster implements what amounts to a linked list of EventListener objects. When you invoke one of the EventListener methods of an AWTEventMulticaster, it invokes the same method on all of the EventListener objects in the linked list.

Rather than instantiate an AWTEventMulticaster object directly, you use the static add() and remove() methods of the class to add and remove EventListener objects from the linked list. Doing so returns an AWTEventMulticaster with the appropriate EventListener object registered. The API for using an AWTEventMulticaster is somewhat non-intuitive. Here is some example code that shows its use:


public class MyList extends Component {   // a class that sends ItemEvents

  // this will be the head of a linked list of AWTEventMulticaster objects

  protected ItemListener listener = null;

  public void addItemListener(ItemListener l) {      // add a listener

    listener = AWTEventMulticaster.add(listener, l);

  }

  public void removeItemListener(ItemListener l) {   // remove a listener

    listener = AWTEventMulticaster.remove(listener, l);

  }

  protected void fireItemEvent(ItemEvent e) {        // notify all listeners

    if (listener != null) listener.itemStateChanged(e);

  }

  // The rest of the class goes here

}


public class AWTEvent Multicaster  extends Object 

                                   implements ComponentListener, ContainerListener, FocusListener, KeyListener, MouseListener, MouseMotionListener, WindowListener, ActionListener,ItemListener, AdjustmentListener, TextListener {

    // Protected Constructor

            protected AWTEventMulticaster(EventListener a, EventListener b);

    // Protected Instance Variables

            protected EventListener a;

            protected EventListener b;

    // Class Methods

            public static ComponentListener add(ComponentListener a, ComponentListener b);

            public static ContainerListener add(ContainerListener a, ContainerListener b);

            public static FocusListener add(FocusListener a, FocusListener b);

            public static KeyListener add(KeyListener a, KeyListener b);

            public static MouseListener add(MouseListener a, MouseListener b);

            public static MouseMotionListener add(MouseMotionListener a, MouseMotionListener b);

            public static WindowListener add(WindowListener a, WindowListener b);

            public static ActionListener add(ActionListener a, ActionListener b);

            public static ItemListener add(ItemListener a, ItemListener b);

            public static AdjustmentListener add(AdjustmentListener a, AdjustmentListener b);

            public static TextListener add(TextListener a, TextListener b);

            protected static EventListener addInternal(EventListener a, EventListener b);

            public static ComponentListener remove(ComponentListener l, ComponentListener oldl);

            public static ContainerListener remove(ContainerListener l, ContainerListener oldl);

            public static FocusListener remove(FocusListener l, FocusListener oldl);

            public static KeyListener remove(KeyListener l, KeyListener oldl);

            public static MouseListener remove(MouseListener l, MouseListener oldl);

            public static MouseMotionListener remove(MouseMotionListener l, MouseMotionListener oldl);

            public static WindowListener remove(WindowListener l, WindowListener oldl);

            public static ActionListener remove(ActionListener l, ActionListener oldl);

            public static ItemListener remove(ItemListener l, ItemListener oldl);

            public static AdjustmentListener remove(AdjustmentListener l, AdjustmentListener oldl);

            public static TextListener remove(TextListener l, TextListener oldl);

            protected static EventListener removeInternal(EventListener l, EventListener oldl);

            protected static void save(ObjectOutputStream s, String k, EventListener l) throws IOException;

    // Public Instance Methods

            public void actionPerformed(ActionEvent e);  // From ActionListener

            public void adjustmentValueChanged(AdjustmentEvent e);  // From AdjustmentListener

            public void componentAdded(ContainerEvent e);  // From ContainerListener

            public void componentHidden(ComponentEvent e);  // From ComponentListener

            public void componentMoved(ComponentEvent e);  // From ComponentListener

            public void componentRemoved(ContainerEvent e);  // From ContainerListener

            public void componentResized(ComponentEvent e);  // From ComponentListener

            public void componentShown(ComponentEvent e);  // From ComponentListener

            public void focusGained(FocusEvent e);  // From FocusListener

            public void focusLost(FocusEvent e);  // From FocusListener

            public void itemStateChanged(ItemEvent e);  // From ItemListener

            public void keyPressed(KeyEvent e);  // From KeyListener

            public void keyReleased(KeyEvent e);  // From KeyListener

            public void keyTyped(KeyEvent e);  // From KeyListener

            public void mouseClicked(MouseEvent e);  // From MouseListener

            public void mouseDragged(MouseEvent e);  // From MouseMotionListener

            public void mouseEntered(MouseEvent e);  // From MouseListener

            public void mouseExited(MouseEvent e);  // From MouseListener

            public void mouseMoved(MouseEvent e);  // From MouseMotionListener

            public void mousePressed(MouseEvent e);  // From MouseListener

            public void mouseReleased(MouseEvent e);  // From MouseListener

            public void textValueChanged(TextEvent e);  // From TextListener

            public void windowActivated(WindowEvent e);  // From WindowListener

            public void windowClosed(WindowEvent e);  // From WindowListener

            public void windowClosing(WindowEvent e);  // From WindowListener

            public void windowDeactivated(WindowEvent e);  // From WindowListener

            public void windowDeiconified(WindowEvent e);  // From WindowListener

            public void windowIconified(WindowEvent e);  // From WindowListener

            public void windowOpened(WindowEvent e);  // From WindowListener

    // Protected Instance Methods

            protected EventListener remove(EventListener oldl);

            protected void saveInternal(ObjectOutputStream s, String k) throws IOException;

}

Hierarchy:

Object->AWTEventMulticaster(ComponentListener(EventListener), ContainerListener(EventListener), FocusListener(EventListener), KeyListener(EventListener), MouseListener(EventListener), MouseMotionListener(EventListener), WindowListener(EventListener), ActionListener(EventListener), ItemListener(EventListener), AdjustmentListener(EventListener), TextListener(EventListener))


Previous Home Next
java.awt.AWTEvent (JDK 1.1) Book Index java.awt.AWTException (JDK 1.0)

Java in a Nutshell Java Language Reference Java AWT Java Fundamental Classes Exploring Java