AWTEventMulticaster
Löst die Bean AWT-Ereignisse aus, kann sie dafür java.awt.AWTEventMulticaster nutzen. Diese Klasse ist für effizientes Multicast-Benachrichtigen bei AWT-Ereignissen gedacht. Genau genommen verbindet sie dazu nur zwei EventListener miteinander, sodass eine Verkettung entsteht.
protected ActionListener listeners;
public void addActionListener( ActionListener l ) {
listeners = AWTEventMulticaster.add( l, listeners );
}
public void removeActionListener( ActionListener l ) {
listeners = AWTEventMulticaster.remove( l, listeners );
}
Da AWTEventMulticaster alle möglichen AWT-Listener implementiert, können wir die Methode actionPerformed(), die die Schnittstelle ActionListener vorschreibt, aufrufen. Wenn wir ACTION_PERFORMED-Nachrichten damit generieren, schreiben wir Folgendes in unsere Bean-Klasse:
protected void fireActionEvent () {
if ( listeners != null )
listeners.actionPerformed( new ActionEvent( this, ActionEvent.ACTION_PERFORMED, null) );
}
Die angemeldeten Listener bekommen auf diese Weise ein ActionEvent geliefert. Der letzte Parameter im Konstruktor, der hier mit null belegt ist, kann zusätzlich eine Referenz übermitteln.
class java.awt.event.AWTEventMulticaster implements ComponentListener, ContainerListener, FocusListener, KeyListener, MouseListener, MouseMotionListener, WindowListener, ActionListener, ItemListener, AdjustmentListener, TextListener, InputMethodListener, HierarchyListener, HierarchyBoundsListener
- static ActionListener
add( ActionListener a, ActionListener b )Verbindet Listener a und b und liefert ein neues ActionListener-Objekt zurück. - static ActionListener
remove( ActionListener l, ActionListener oldl )Entfernt Listener oldl von l und liefert den neuen Multicast-Listener zurück.
class java.awt.event.ActionEvent extends AWTEvent
- ActionEvent(
Objectsource, int id,Stringcommand ) Erzeugt ein ActionEvent mit einer Quelle, die das Ereignis ausgelöst hat, einem Identifizierer und einem Kommando.