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