public class AWTEventMulticaster extends Objectimplements ComponentListener , ContainerListener , FocusListener , KeyListener , MouseListener , MouseMotionListener , WindowListener , WindowFocusListener , WindowStateListener , ActionListener , ItemListener , AdjustmentListener , TextListener , InputMethodListener , HierarchyListener , HierarchyBoundsListener , MouseWheelListener
AWTEventMulticaster implements efficient and thread-safe multi-cast event dispatching for the AWT events defined in the
java.awt.event package.
The following example illustrates how to use this class:
public myComponent extends Component {
ActionListener actionListener = null;
public synchronized void addActionListener(ActionListener l) {
actionListener = AWTEventMulticaster.add(actionListener, l);
}
public synchronized void removeActionListener(ActionListener l) {
actionListener = AWTEventMulticaster.remove(actionListener, l);
}
public void processEvent(AWTEvent e) {
// when event occurs which causes "action" semantic
ActionListener listener = actionListener;
if (listener != null) {
listener.actionPerformed(new ActionEvent());
}
}
}
The important point to note is the first argument to the
add and
remove methods is the field maintaining the listeners. In addition you must assign the result of the
add and
remove methods to the field maintaining the listeners.
AWTEventMulticaster is implemented as a pair of EventListeners that are set at construction time. AWTEventMulticaster is immutable. The add and remove methods do not alter AWTEventMulticaster in anyway. If necessary, a new AWTEventMulticaster is created. In this way it is safe to add and remove listeners during the process of an event dispatching. However, event listeners added during the process of an event dispatch operation are not notified of the event currently being dispatched.
All of the add methods allow null arguments. If the first argument is null, the second argument is returned. If the first argument is not null and the second argument is null, the first argument is returned. If both arguments are non-null, a new AWTEventMulticaster is created using the two arguments and returned.
For the remove methods that take two arguments, the following is returned:
null, if the first argument is null, or the arguments are equal, by way of ==. AWTEventMulticaster. remove(EventListener) on the first argument, supplying the second argument to the remove(EventListener) method. Swing makes use of EventListenerList for similar logic. Refer to it for details.
EventListenerList
| Modifier and Type | Field and Description |
|---|---|
protected EventListener |
a
|
protected EventListener |
b
|
| Modifier | Constructor and Description |
|---|---|
protected |
AWTEventMulticaster(EventListener
Creates an event multicaster instance which chains listener-a with listener-b.
|
| Modifier and Type | Method and Description |
|---|---|
void |
actionPerformed(ActionEvent
Handles the actionPerformed event by invoking the actionPerformed methods on listener-a and listener-b.
|
static ActionListener |
add(ActionListener
Adds action-listener-a with action-listener-b and returns the resulting multicast listener.
|
static AdjustmentListener |
add(AdjustmentListener
Adds adjustment-listener-a with adjustment-listener-b and returns the resulting multicast listener.
|
static ComponentListener |
add(ComponentListener
Adds component-listener-a with component-listener-b and returns the resulting multicast listener.
|
static ContainerListener |
add(ContainerListener
Adds container-listener-a with container-listener-b and returns the resulting multicast listener.
|
static FocusListener |
add(FocusListener
Adds focus-listener-a with focus-listener-b and returns the resulting multicast listener.
|
static HierarchyBoundsListener |
add(HierarchyBoundsListener
Adds hierarchy-bounds-listener-a with hierarchy-bounds-listener-b and returns the resulting multicast listener.
|
static HierarchyListener |
add(HierarchyListener
Adds hierarchy-listener-a with hierarchy-listener-b and returns the resulting multicast listener.
|
static InputMethodListener |
add(InputMethodListener
Adds input-method-listener-a with input-method-listener-b and returns the resulting multicast listener.
|
static ItemListener |
add(ItemListener
Adds item-listener-a with item-listener-b and returns the resulting multicast listener.
|
static KeyListener |
add(KeyListener
Adds key-listener-a with key-listener-b and returns the resulting multicast listener.
|
static MouseListener |
add(MouseListener
Adds mouse-listener-a with mouse-listener-b and returns the resulting multicast listener.
|
static MouseMotionListener |
add(MouseMotionListener
Adds mouse-motion-listener-a with mouse-motion-listener-b and returns the resulting multicast listener.
|
static MouseWheelListener |
add(MouseWheelListener
Adds mouse-wheel-listener-a with mouse-wheel-listener-b and returns the resulting multicast listener.
|
static TextListener |
add(TextListener
|
static WindowFocusListener |
add(WindowFocusListener
Adds window-focus-listener-a with window-focus-listener-b and returns the resulting multicast listener.
|
static WindowListener |
add(WindowListener
Adds window-listener-a with window-listener-b and returns the resulting multicast listener.
|
static WindowStateListener |
add(WindowStateListener
Adds window-state-listener-a with window-state-listener-b and returns the resulting multicast listener.
|
protected static EventListener |
addInternal(EventListener
Returns the resulting multicast listener from adding listener-a and listener-b together.
|
void |
adjustmentValueChanged(AdjustmentEvent
Handles the adjustmentValueChanged event by invoking the adjustmentValueChanged methods on listener-a and listener-b.
|
void |
ancestorMoved(HierarchyEvent
Handles the ancestorMoved event by invoking the ancestorMoved methods on listener-a and listener-b.
|
void |
ancestorResized(HierarchyEvent
Handles the ancestorResized event by invoking the ancestorResized methods on listener-a and listener-b.
|
void |
caretPositionChanged(InputMethodEvent
Handles the caretPositionChanged event by invoking the caretPositionChanged methods on listener-a and listener-b.
|
void |
componentAdded(ContainerEvent
Handles the componentAdded container event by invoking the componentAdded methods on listener-a and listener-b.
|
void |
componentHidden(ComponentEvent
Handles the componentHidden event by invoking the componentHidden methods on listener-a and listener-b.
|
void |
componentMoved(ComponentEvent
Handles the componentMoved event by invoking the componentMoved methods on listener-a and listener-b.
|
void |
componentRemoved(ContainerEvent
Handles the componentRemoved container event by invoking the componentRemoved methods on listener-a and listener-b.
|
void |
componentResized(ComponentEvent
Handles the componentResized event by invoking the componentResized methods on listener-a and listener-b.
|
void |
componentShown(ComponentEvent
Handles the componentShown event by invoking the componentShown methods on listener-a and listener-b.
|
void |
focusGained(FocusEvent
Handles the focusGained event by invoking the focusGained methods on listener-a and listener-b.
|
void |
focusLost(FocusEvent
Handles the focusLost event by invoking the focusLost methods on listener-a and listener-b.
|
static <T extends EventListener |
getListeners(EventListener
Returns an array of all the objects chained as
FooListeners by the specified
java.util.EventListener.
|
void |
hierarchyChanged(HierarchyEvent
Handles the hierarchyChanged event by invoking the hierarchyChanged methods on listener-a and listener-b.
|
void |
inputMethodTextChanged(InputMethodEvent
Handles the inputMethodTextChanged event by invoking the inputMethodTextChanged methods on listener-a and listener-b.
|
void |
itemStateChanged(ItemEvent
Handles the itemStateChanged event by invoking the itemStateChanged methods on listener-a and listener-b.
|
void |
keyPressed(KeyEvent
Handles the keyPressed event by invoking the keyPressed methods on listener-a and listener-b.
|
void |
keyReleased(KeyEvent
Handles the keyReleased event by invoking the keyReleased methods on listener-a and listener-b.
|
void |
keyTyped(KeyEvent
Handles the keyTyped event by invoking the keyTyped methods on listener-a and listener-b.
|
void |
mouseClicked(MouseEvent
Handles the mouseClicked event by invoking the mouseClicked methods on listener-a and listener-b.
|
void |
mouseDragged(MouseEvent
Handles the mouseDragged event by invoking the mouseDragged methods on listener-a and listener-b.
|
void |
mouseEntered(MouseEvent
Handles the mouseEntered event by invoking the mouseEntered methods on listener-a and listener-b.
|
void |
mouseExited(MouseEvent
Handles the mouseExited event by invoking the mouseExited methods on listener-a and listener-b.
|
void |
mouseMoved(MouseEvent
Handles the mouseMoved event by invoking the mouseMoved methods on listener-a and listener-b.
|
void |
mousePressed(MouseEvent
Handles the mousePressed event by invoking the mousePressed methods on listener-a and listener-b.
|
void |
mouseReleased(MouseEvent
Handles the mouseReleased event by invoking the mouseReleased methods on listener-a and listener-b.
|
void |
mouseWheelMoved(MouseWheelEvent
Handles the mouseWheelMoved event by invoking the mouseWheelMoved methods on listener-a and listener-b.
|
static ActionListener |
remove(ActionListener
Removes the old action-listener from action-listener-l and returns the resulting multicast listener.
|
static AdjustmentListener |
remove(AdjustmentListener
Removes the old adjustment-listener from adjustment-listener-l and returns the resulting multicast listener.
|
static ComponentListener |
remove(ComponentListener
Removes the old component-listener from component-listener-l and returns the resulting multicast listener.
|
static ContainerListener |
remove(ContainerListener
Removes the old container-listener from container-listener-l and returns the resulting multicast listener.
|
protected EventListener |
remove(EventListener
Removes a listener from this multicaster.
|
static FocusListener |
remove(FocusListener
Removes the old focus-listener from focus-listener-l and returns the resulting multicast listener.
|
static HierarchyBoundsListener |
remove(HierarchyBoundsListener
Removes the old hierarchy-bounds-listener from hierarchy-bounds-listener-l and returns the resulting multicast listener.
|
static HierarchyListener |
remove(HierarchyListener
Removes the old hierarchy-listener from hierarchy-listener-l and returns the resulting multicast listener.
|
static InputMethodListener |
remove(InputMethodListener
Removes the old input-method-listener from input-method-listener-l and returns the resulting multicast listener.
|
static ItemListener |
remove(ItemListener
Removes the old item-listener from item-listener-l and returns the resulting multicast listener.
|
static KeyListener |
remove(KeyListener
Removes the old key-listener from key-listener-l and returns the resulting multicast listener.
|
static MouseListener |
remove(MouseListener
Removes the old mouse-listener from mouse-listener-l and returns the resulting multicast listener.
|
static MouseMotionListener |
remove(MouseMotionListener
Removes the old mouse-motion-listener from mouse-motion-listener-l and returns the resulting multicast listener.
|
static MouseWheelListener |
remove(MouseWheelListener
Removes the old mouse-wheel-listener from mouse-wheel-listener-l and returns the resulting multicast listener.
|
static TextListener |
remove(TextListener
|
static WindowFocusListener |
remove(WindowFocusListener
Removes the old window-focus-listener from window-focus-listener-l and returns the resulting multicast listener.
|
static WindowListener |
remove(WindowListener
Removes the old window-listener from window-listener-l and returns the resulting multicast listener.
|
static WindowStateListener |
remove(WindowStateListener
Removes the old window-state-listener from window-state-listener-l and returns the resulting multicast listener.
|
protected static EventListener |
removeInternal(EventListener
Returns the resulting multicast listener after removing the old listener from listener-l.
|
protected static void |
save(ObjectOutputStream
|
protected void |
saveInternal(ObjectOutputStream
|
void |
textValueChanged(TextEvent
Invoked when the value of the text has changed.
|
void |
windowActivated(WindowEvent
Handles the windowActivated event by invoking the windowActivated methods on listener-a and listener-b.
|
void |
windowClosed(WindowEvent
Handles the windowClosed event by invoking the windowClosed methods on listener-a and listener-b.
|
void |
windowClosing(WindowEvent
Handles the windowClosing event by invoking the windowClosing methods on listener-a and listener-b.
|
void |
windowDeactivated(WindowEvent
Handles the windowDeactivated event by invoking the windowDeactivated methods on listener-a and listener-b.
|
void |
windowDeiconified(WindowEvent
Handles the windowDeiconfied event by invoking the windowDeiconified methods on listener-a and listener-b.
|
void |
windowGainedFocus(WindowEvent
Handles the windowGainedFocus event by invoking the windowGainedFocus methods on listener-a and listener-b.
|
void |
windowIconified(WindowEvent
Handles the windowIconified event by invoking the windowIconified methods on listener-a and listener-b.
|
void |
windowLostFocus(WindowEvent
Handles the windowLostFocus event by invoking the windowLostFocus methods on listener-a and listener-b.
|
void |
windowOpened(WindowEvent
Handles the windowOpened event by invoking the windowOpened methods on listener-a and listener-b.
|
void |
windowStateChanged(WindowEvent
Handles the windowStateChanged event by invoking the windowStateChanged methods on listener-a and listener-b.
|
protected final EventListenera
protected final EventListenerb
protected AWTEventMulticaster(EventListenera, EventListener b)
a and
b should not be
null, though implementations may vary in choosing whether or not to throw
NullPointerException in that case.
a - listener-a
b - listener-b
protected EventListenerremove(EventListener oldl)
The returned multicaster contains all the listeners in this multicaster with the exception of all occurrences of oldl. If the resulting multicaster contains only one regular listener the regular listener may be returned. If the resulting multicaster is empty, then null may be returned instead.
No exception is thrown if oldl is null.
oldl - the listener to be removed
public void componentResized(ComponentEvente)
componentResized in interface
ComponentListener
e - the component event
public void componentMoved(ComponentEvente)
componentMoved in interface
ComponentListener
e - the component event
public void componentShown(ComponentEvente)
componentShown in interface
ComponentListener
e - the component event
public void componentHidden(ComponentEvente)
componentHidden in interface
ComponentListener
e - the component event
public void componentAdded(ContainerEvente)
componentAdded in interface
ContainerListener
e - the component event
public void componentRemoved(ContainerEvente)
componentRemoved in interface
ContainerListener
e - the component event
public void focusGained(FocusEvente)
focusGained in interface
FocusListener
e - the focus event
public void focusLost(FocusEvente)
focusLost in interface
FocusListener
e - the focus event
public void keyTyped(KeyEvente)
keyTyped in interface
KeyListener
e - the key event
public void keyPressed(KeyEvente)
keyPressed in interface
KeyListener
e - the key event
public void keyReleased(KeyEvente)
keyReleased in interface
KeyListener
e - the key event
public void mouseClicked(MouseEvente)
mouseClicked in interface
MouseListener
e - the mouse event
public void mousePressed(MouseEvente)
mousePressed in interface
MouseListener
e - the mouse event
public void mouseReleased(MouseEvente)
mouseReleased in interface
MouseListener
e - the mouse event
public void mouseEntered(MouseEvente)
mouseEntered in interface
MouseListener
e - the mouse event
public void mouseExited(MouseEvente)
mouseExited in interface
MouseListener
e - the mouse event
public void mouseDragged(MouseEvente)
mouseDragged in interface
MouseMotionListener
e - the mouse event
public void mouseMoved(MouseEvente)
mouseMoved in interface
MouseMotionListener
e - the mouse event
public void windowOpened(WindowEvente)
windowOpened in interface
WindowListener
e - the window event
public void windowClosing(WindowEvente)
windowClosing in interface
WindowListener
e - the window event
public void windowClosed(WindowEvente)
windowClosed in interface
WindowListener
e - the window event
public void windowIconified(WindowEvente)
windowIconified in interface
WindowListener
e - the window event
Frame.setIconImage(java.awt.Image)
public void windowDeiconified(WindowEvente)
windowDeiconified in interface
WindowListener
e - the window event
public void windowActivated(WindowEvente)
windowActivated in interface
WindowListener
e - the window event
public void windowDeactivated(WindowEvente)
windowDeactivated in interface
WindowListener
e - the window event
public void windowStateChanged(WindowEvente)
windowStateChanged in interface
WindowStateListener
e - the window event
public void windowGainedFocus(WindowEvente)
windowGainedFocus in interface
WindowFocusListener
e - the window event
public void windowLostFocus(WindowEvente)
windowLostFocus in interface
WindowFocusListener
e - the window event
public void actionPerformed(ActionEvente)
actionPerformed in interface
ActionListener
e - the action event
public void itemStateChanged(ItemEvente)
itemStateChanged in interface
ItemListener
e - the item event
public void adjustmentValueChanged(AdjustmentEvente)
adjustmentValueChanged in interface
AdjustmentListener
e - the adjustment event
public void textValueChanged(TextEvente)
TextListener
public void inputMethodTextChanged(InputMethodEvente)
inputMethodTextChanged in interface
InputMethodListener
e - the item event
public void caretPositionChanged(InputMethodEvente)
caretPositionChanged in interface
InputMethodListener
e - the item event
public void hierarchyChanged(HierarchyEvente)
hierarchyChanged in interface
HierarchyListener
e - the item event
HierarchyEvent.getChangeFlags()
public void ancestorMoved(HierarchyEvente)
ancestorMoved in interface
HierarchyBoundsListener
e - the item event
public void ancestorResized(HierarchyEvente)
ancestorResized in interface
HierarchyBoundsListener
e - the item event
public void mouseWheelMoved(MouseWheelEvente)
mouseWheelMoved in interface
MouseWheelListener
e - the mouse event
MouseWheelEvent
public static ComponentListeneradd(ComponentListener a, ComponentListener b)
a - component-listener-a
b - component-listener-b
public static ContainerListeneradd(ContainerListener a, ContainerListener b)
a - container-listener-a
b - container-listener-b
public static FocusListeneradd(FocusListener a, FocusListener b)
a - focus-listener-a
b - focus-listener-b
public static KeyListeneradd(KeyListener a, KeyListener b)
a - key-listener-a
b - key-listener-b
public static MouseListeneradd(MouseListener a, MouseListener b)
a - mouse-listener-a
b - mouse-listener-b
public static MouseMotionListeneradd(MouseMotionListener a, MouseMotionListener b)
a - mouse-motion-listener-a
b - mouse-motion-listener-b
public static WindowListeneradd(WindowListener a, WindowListener b)
a - window-listener-a
b - window-listener-b
public static WindowStateListeneradd(WindowStateListener a, WindowStateListener b)
a - window-state-listener-a
b - window-state-listener-b
public static WindowFocusListeneradd(WindowFocusListener a, WindowFocusListener b)
a - window-focus-listener-a
b - window-focus-listener-b
public static ActionListeneradd(ActionListener a, ActionListener b)
a - action-listener-a
b - action-listener-b
public static ItemListeneradd(ItemListener a, ItemListener b)
a - item-listener-a
b - item-listener-b
public static AdjustmentListeneradd(AdjustmentListener a, AdjustmentListener b)
a - adjustment-listener-a
b - adjustment-listener-b
public static TextListeneradd(TextListener a, TextListener b)
public static InputMethodListeneradd(InputMethodListener a, InputMethodListener b)
a - input-method-listener-a
b - input-method-listener-b
public static HierarchyListeneradd(HierarchyListener a, HierarchyListener b)
a - hierarchy-listener-a
b - hierarchy-listener-b
public static HierarchyBoundsListeneradd(HierarchyBoundsListener a, HierarchyBoundsListener b)
a - hierarchy-bounds-listener-a
b - hierarchy-bounds-listener-b
public static MouseWheelListeneradd(MouseWheelListener a, MouseWheelListener b)
a - mouse-wheel-listener-a
b - mouse-wheel-listener-b
public static ComponentListenerremove(ComponentListener l, ComponentListener oldl)
l - component-listener-l
oldl - the component-listener being removed
public static ContainerListenerremove(ContainerListener l, ContainerListener oldl)
l - container-listener-l
oldl - the container-listener being removed
public static FocusListenerremove(FocusListener l, FocusListener oldl)
l - focus-listener-l
oldl - the focus-listener being removed
public static KeyListenerremove(KeyListener l, KeyListener oldl)
l - key-listener-l
oldl - the key-listener being removed
public static MouseListenerremove(MouseListener l, MouseListener oldl)
l - mouse-listener-l
oldl - the mouse-listener being removed
public static MouseMotionListenerremove(MouseMotionListener l, MouseMotionListener oldl)
l - mouse-motion-listener-l
oldl - the mouse-motion-listener being removed
public static WindowListenerremove(WindowListener l, WindowListener oldl)
l - window-listener-l
oldl - the window-listener being removed
public static WindowStateListenerremove(WindowStateListener l, WindowStateListener oldl)
l - window-state-listener-l
oldl - the window-state-listener being removed
public static WindowFocusListenerremove(WindowFocusListener l, WindowFocusListener oldl)
l - window-focus-listener-l
oldl - the window-focus-listener being removed
public static ActionListenerremove(ActionListener l, ActionListener oldl)
l - action-listener-l
oldl - the action-listener being removed
public static ItemListenerremove(ItemListener l, ItemListener oldl)
l - item-listener-l
oldl - the item-listener being removed
public static AdjustmentListenerremove(AdjustmentListener l, AdjustmentListener oldl)
l - adjustment-listener-l
oldl - the adjustment-listener being removed
public static TextListenerremove(TextListener l, TextListener oldl)
public static InputMethodListenerremove(InputMethodListener l, InputMethodListener oldl)
l - input-method-listener-l
oldl - the input-method-listener being removed
public static HierarchyListenerremove(HierarchyListener l, HierarchyListener oldl)
l - hierarchy-listener-l
oldl - the hierarchy-listener being removed
public static HierarchyBoundsListenerremove(HierarchyBoundsListener l, HierarchyBoundsListener oldl)
l - hierarchy-bounds-listener-l
oldl - the hierarchy-bounds-listener being removed
public static MouseWheelListenerremove(MouseWheelListener l, MouseWheelListener oldl)
l - mouse-wheel-listener-l
oldl - the mouse-wheel-listener being removed
protected static EventListeneraddInternal(EventListener a, EventListener b)
a - event listener-a
b - event listener-b
protected static EventListenerremoveInternal(EventListener l, EventListener oldl)
l - the listener being removed from
oldl - the listener being removed
protected void saveInternal(ObjectOutputStreams, String k) throws IOException
IOException
protected static void save(ObjectOutputStreams, String k, EventListener l) throws IOException
IOException
public static <T extends EventListener> T[] getListeners(EventListener l, Class <T> listenerType)
FooListeners by the specified
java.util.EventListener.
FooListeners are chained by the
AWTEventMulticaster using the
addFooListener method. If a
null listener is specified, this method returns an empty array. If the specified listener is not an instance of
AWTEventMulticaster, this method returns an array which contains only the specified listener. If no such listeners are chained, this method returns an empty array.
l - the specified
java.util.EventListener
listenerType - the type of listeners requested; this parameter should specify an interface that descends from
java.util.EventListener
FooListeners by the specified multicast listener, or an empty array if no such listeners have been chained by the specified multicast listener
NullPointerException - if the specified
listenertype parameter is
null
ClassCastException - if
listenerType doesn't specify a class or interface that implements
java.util.EventListener