模块 java.desktop
 java.awt

类 AWTEventMulticaster

java.lang.Object
java.awt.AWTEventMulticaster
所有已实现的接口:
ActionListener , AdjustmentListener , ComponentListener , ContainerListener , FocusListener , HierarchyBoundsListener , HierarchyListener , InputMethodListener , ItemListener , KeyListener , MouseListener , MouseMotionListener , MouseWheelListener , TextListener , WindowFocusListener , WindowListener , WindowStateListener , EventListener

AWTEventMulticasterjava.awt.event 包中定义的 AWT 事件实现高效且线程安全的多播事件调度。

下面的示例说明了如何使用这个类:


 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());
     }
   }
 }
  
需要注意的重点是 addremove 方法的第一个参数是维护监听器的字段。此外,您必须将 addremove 方法的结果分配给维护监听器的字段。

AWTEventMulticaster 实现为一对在构建时设置的 EventListeners AWTEventMulticaster 是不可变的。 add remove 方法无论如何都不会改变 AWTEventMulticaster。如有必要,将创建一个新的 AWTEventMulticaster。这样,在事件派发过程中添加和删除监听器是安全的。但是,在事件派发操作过程中添加的事件监听器不会被通知当前正在派发的事件。

所有 add 方法都允许 null 参数。如果第一个参数是 null ,则返回第二个参数。如果第一个参数不是 null 而第二个参数是 null ,则返回第一个参数。如果两个参数都是 non-null ,则使用这两个参数创建一个新的 AWTEventMulticaster 并返回。

对于采用两个参数的 remove 方法,返回以下内容:

  • null ,如果第一个参数是 null ,或者参数相等,则通过 ==
  • 第一个参数,如果第一个参数不是 AWTEventMulticaster 的实例。
  • 在第一个参数上调用 remove(EventListener) 的结果,将第二个参数提供给 remove(EventListener) 方法。

Swing 使用 EventListenerList 来实现类似的逻辑。详情请参阅。

自从:
1.1
参见:
  • 字段详细信息

    • a

      protected final EventListener  a
      事件链中的一个变量(listener-a)
    • b

      protected final EventListener  b
      事件链中的一个变量(listener-b)
  • 构造方法详细信息

    • AWTEventMulticaster

      protected AWTEventMulticaster(EventListener  a, EventListener  b)
      创建一个事件多播器实例,它将 listener-a 与 listener-b 链接起来。输入参数 ab 不应该是 null ,尽管在这种情况下选择是否抛出 NullPointerException 的实现可能会有所不同。
      参数:
      a - 听众-a
      b - 监听器-b
  • 方法详情

    • remove

      protected EventListener  remove(EventListener  oldl)
      从此多播器中删除一个监听。

      返回的多播器包含此多播器中的所有监听器,但所有出现的 oldl 除外。如果生成的多播器仅包含一个常规监听器,则可能会返回常规监听器。如果生成的多播器为空,则可能会返回 null

      如果 oldlnull 则不会抛出异常。

      参数:
      oldl - 要删除的监听器
      返回:
      结果听众
    • componentResized

      public void componentResized(ComponentEvent  e)
      通过在 listener-a 和 listener-b 上调用 componentResized 方法来处理 componentResized 事件。
      指定者:
      componentResized 在接口 ComponentListener
      参数:
      e - 组件事件
    • componentMoved

      public void componentMoved(ComponentEvent  e)
      通过在 listener-a 和 listener-b 上调用 componentMoved 方法来处理 componentMoved 事件。
      指定者:
      componentMoved 在接口 ComponentListener
      参数:
      e - 组件事件
    • componentShown

      public void componentShown(ComponentEvent  e)
      通过在 listener-a 和 listener-b 上调用 componentShown 方法来处理 componentShown 事件。
      指定者:
      componentShown 在接口 ComponentListener
      参数:
      e - 组件事件
    • componentHidden

      public void componentHidden(ComponentEvent  e)
      通过在 listener-a 和 listener-b 上调用 componentHidden 方法来处理 componentHidden 事件。
      指定者:
      componentHidden 在接口 ComponentListener
      参数:
      e - 组件事件
    • componentAdded

      public void componentAdded(ContainerEvent  e)
      通过在 listener-a 和 listener-b 上调用 componentAdded 方法来处理 componentAdded 容器事件。
      指定者:
      componentAdded 在接口 ContainerListener
      参数:
      e - 组件事件
    • componentRemoved

      public void componentRemoved(ContainerEvent  e)
      通过在 listener-a 和 listener-b 上调用 componentRemoved 方法来处理 componentRemoved 容器事件。
      指定者:
      componentRemoved 在接口 ContainerListener
      参数:
      e - 组件事件
    • focusGained

      public void focusGained(FocusEvent  e)
      通过在 listener-a 和 listener-b 上调用 focusGained 方法来处理 focusGained 事件。
      指定者:
      focusGained 在接口 FocusListener
      参数:
      e - 焦点事件
    • focusLost

      public void focusLost(FocusEvent  e)
      通过在 listener-a 和 listener-b 上调用 focusLost 方法来处理 focusLost 事件。
      指定者:
      focusLost 在接口 FocusListener
      参数:
      e - 焦点事件
    • keyTyped

      public void keyTyped(KeyEvent  e)
      通过在 listener-a 和 listener-b 上调用 keyTyped 方法来处理 keyTyped 事件。
      指定者:
      keyTyped 在接口 KeyListener
      参数:
      e - 关键事件
    • keyPressed

      public void keyPressed(KeyEvent  e)
      通过调用 listener-a 和 listener-b 上的 keyPressed 方法来处理 keyPressed 事件。
      指定者:
      keyPressed 在接口 KeyListener
      参数:
      e - 关键事件
    • keyReleased

      public void keyReleased(KeyEvent  e)
      通过在 listener-a 和 listener-b 上调用 keyReleased 方法来处理 keyReleased 事件。
      指定者:
      keyReleased 在接口 KeyListener
      参数:
      e - 关键事件
    • mouseClicked

      public void mouseClicked(MouseEvent  e)
      通过调用 listener-a 和 listener-b 上的 mouseClicked 方法来处理 mouseClicked 事件。
      指定者:
      mouseClicked 在接口 MouseListener
      参数:
      e - 鼠标事件
    • mousePressed

      public void mousePressed(MouseEvent  e)
      通过调用 listener-a 和 listener-b 上的 mousePressed 方法来处理 mousePressed 事件。
      指定者:
      mousePressed 在接口 MouseListener
      参数:
      e - 鼠标事件
    • mouseReleased

      public void mouseReleased(MouseEvent  e)
      通过调用 listener-a 和 listener-b 上的 mouseReleased 方法来处理 mouseReleased 事件。
      指定者:
      mouseReleased 在接口 MouseListener
      参数:
      e - 鼠标事件
    • mouseEntered

      public void mouseEntered(MouseEvent  e)
      通过调用 listener-a 和 listener-b 上的 mouseEntered 方法来处理 mouseEntered 事件。
      指定者:
      mouseEntered 在接口 MouseListener
      参数:
      e - 鼠标事件
    • mouseExited

      public void mouseExited(MouseEvent  e)
      通过调用 listener-a 和 listener-b 上的 mouseExited 方法来处理 mouseExited 事件。
      指定者:
      mouseExited 在接口 MouseListener
      参数:
      e - 鼠标事件
    • mouseDragged

      public void mouseDragged(MouseEvent  e)
      通过调用 listener-a 和 listener-b 上的 mouseDragged 方法来处理 mouseDragged 事件。
      指定者:
      mouseDragged 在接口 MouseMotionListener
      参数:
      e - 鼠标事件
    • mouseMoved

      public void mouseMoved(MouseEvent  e)
      通过调用 listener-a 和 listener-b 上的 mouseMoved 方法来处理 mouseMoved 事件。
      指定者:
      mouseMoved 在接口 MouseMotionListener
      参数:
      e - 鼠标事件
    • windowOpened

      public void windowOpened(WindowEvent  e)
      通过调用 listener-a 和 listener-b 上的 windowOpened 方法来处理 windowOpened 事件。
      指定者:
      windowOpened 在接口 WindowListener
      参数:
      e - 窗口事件
    • windowClosing

      public void windowClosing(WindowEvent  e)
      listener-b上的 windowClosing 方法来处理 windowClosing 事件。
      指定者:
      windowClosing 在接口 WindowListener
      参数:
      e - 窗口事件
    • windowClosed

      public void windowClosed(WindowEvent  e)
      通过调用 listener-a 和 listener-b 上的 windowClosed 方法来处理 windowClosed 事件。
      指定者:
      windowClosed 在接口 WindowListener
      参数:
      e - 窗口事件
    • windowIconified

      public void windowIconified(WindowEvent  e)
      通过调用 listener-a 和 listener-b 上的 windowIconified 方法来处理 windowIconified 事件。
      指定者:
      windowIconified 在接口 WindowListener
      参数:
      e - 窗口事件
      参见:
    • windowDeiconified

      public void windowDeiconified(WindowEvent  e)
      通过在 listener-a 和 listener-b 上调用 windowDeiconified 方法来处理 windowDeiconified 事件。
      指定者:
      windowDeiconified 在接口 WindowListener
      参数:
      e - 窗口事件
    • windowActivated

      public void windowActivated(WindowEvent  e)
      通过调用 listener-a 和 listener-b 上的 windowActivated 方法来处理 windowActivated 事件。
      指定者:
      windowActivated 在接口 WindowListener
      参数:
      e - 窗口事件
    • windowDeactivated

      public void windowDeactivated(WindowEvent  e)
      通过调用 listener-a 和 listener-b 上的 windowDeactivated 方法来处理 windowDeactivated 事件。
      指定者:
      windowDeactivated 在接口 WindowListener
      参数:
      e - 窗口事件
    • windowStateChanged

      public void windowStateChanged(WindowEvent  e)
      通过调用 listener-a 和 listener-b 上的 windowStateChanged 方法来处理 windowStateChanged 事件。
      指定者:
      windowStateChanged 在接口 WindowStateListener
      参数:
      e - 窗口事件
      自从:
      1.4
    • windowGainedFocus

      public void windowGainedFocus(WindowEvent  e)
      通过在 listener-a 和 listener-b 上调用 windowGainedFocus 方法来处理 windowGainedFocus 事件。
      指定者:
      windowGainedFocus 在接口 WindowFocusListener
      参数:
      e - 窗口事件
      自从:
      1.4
    • windowLostFocus

      public void windowLostFocus(WindowEvent  e)
      通过在 listener-a 和 listener-b 上调用 windowLostFocus 方法来处理 windowLostFocus 事件。
      指定者:
      windowLostFocus 在接口 WindowFocusListener
      参数:
      e - 窗口事件
      自从:
      1.4
    • actionPerformed

      public void actionPerformed(ActionEvent  e)
      通过调用 listener-a 和 listener-b 上的 actionPerformed 方法来处理 actionPerformed 事件。
      指定者:
      actionPerformed 在接口 ActionListener
      参数:
      e - 动作事件
    • itemStateChanged

      public void itemStateChanged(ItemEvent  e)
      通过调用 listener-a 和 listener-b 上的 itemStateChanged 方法来处理 itemStateChanged 事件。
      指定者:
      itemStateChanged 在接口 ItemListener
      参数:
      e - 项目事件
    • adjustmentValueChanged

      public void adjustmentValueChanged(AdjustmentEvent  e)
      通过调用 listener-a 和 listener-b 上的 adjustmentValueChanged 方法来处理 adjustmentValueChanged 事件。
      指定者:
      adjustmentValueChanged 在接口 AdjustmentListener
      参数:
      e - 调整事件
    • textValueChanged

      public void textValueChanged(TextEvent  e)
      从接口 TextListener 复制的描述
      当文本的值发生变化时调用。为此方法编写的代码执行文本更改时需要发生的操作。
      指定者:
      textValueChanged 在接口 TextListener
      参数:
      e - 要处理的事件
    • inputMethodTextChanged

      public void inputMethodTextChanged(InputMethodEvent  e)
      通过调用 listener-a 和 listener-b 上的 inputMethodTextChanged 方法来处理 inputMethodTextChanged 事件。
      指定者:
      inputMethodTextChanged 在接口 InputMethodListener
      参数:
      e - 项目事件
    • caretPositionChanged

      public void caretPositionChanged(InputMethodEvent  e)
      通过调用 listener-a 和 listener-b 上的 caretPositionChanged 方法来处理 caretPositionChanged 事件。
      指定者:
      caretPositionChanged 在接口 InputMethodListener
      参数:
      e - 项目事件
    • hierarchyChanged

      public void hierarchyChanged(HierarchyEvent  e)
      通过在 listener-a 和 listener-b 上调用 hierarchyChanged 方法来处理 hierarchyChanged 事件。
      指定者:
      hierarchyChanged 在接口 HierarchyListener
      参数:
      e - 项目事件
      自从:
      1.3
      参见:
    • ancestorMoved

      public void ancestorMoved(HierarchyEvent  e)
      通过在 listener-a 和 listener-b 上调用 ancestorMoved 方法来处理 ancestorMoved 事件。
      指定者:
      ancestorMoved 在接口 HierarchyBoundsListener
      参数:
      e - 项目事件
      自从:
      1.3
    • ancestorResized

      public void ancestorResized(HierarchyEvent  e)
      通过在 listener-a 和 listener-b 上调用 ancestorResized 方法来处理 ancestorResized 事件。
      指定者:
      ancestorResized 在接口 HierarchyBoundsListener
      参数:
      e - 项目事件
      自从:
      1.3
    • mouseWheelMoved

      public void mouseWheelMoved(MouseWheelEvent  e)
      通过调用 listener-a 和 listener-b 上的 mouseWheelMoved 方法来处理 mouseWheelMoved 事件。
      指定者:
      mouseWheelMoved 在接口 MouseWheelListener
      参数:
      e - 鼠标事件
      自从:
      1.4
      参见:
    • add

      public static ComponentListener  add(ComponentListener  a, ComponentListener  b)
      添加 component-listener-a 和 component-listener-b 并返回生成的多播监听。
      参数:
      a - 组件监听器 a
      b - 组件监听器 b
      返回:
      结果听众
    • add

      public static ContainerListener  add(ContainerListener  a, ContainerListener  b)
      添加 container-listener-a 和 container-listener-b 并返回生成的多播监听。
      参数:
      a - 容器监听器 a
      b - 容器监听器 b
      返回:
      结果听众
    • add

      public static FocusListener  add(FocusListener  a, FocusListener  b)
      添加 focus-listener-a 和 focus-listener-b 并返回生成的多播监听。
      参数:
      a - 焦点听众-a
      b - 焦点监听器-b
      返回:
      结果听众
    • add

      public static KeyListener  add(KeyListener  a, KeyListener  b)
      添加 key-listener-a 和 key-listener-b 并返回生成的多播监听。
      参数:
      a - 关键监听器 a
      b - 关键监听器 b
      返回:
      结果听众
    • add

      public static MouseListener  add(MouseListener  a, MouseListener  b)
      添加 mouse-listener-a 和 mouse-listener-b 并返回生成的多播监听。
      参数:
      a - 鼠标监听器-a
      b - 鼠标监听器 b
      返回:
      结果听众
    • add

      添加 mouse-motion-listener-a 和 mouse-motion-listener-b 并返回生成的多播监听。
      参数:
      a - 鼠标动作监听器-a
      b - 鼠标动作监听器 b
      返回:
      结果听众
    • add

      public static WindowListener  add(WindowListener  a, WindowListener  b)
      添加 window-listener-a 和 window-listener-b 并返回生成的多播监听。
      参数:
      a - 窗口监听器-a
      b - 窗口监听器-b
      返回:
      结果听众
    • add

      添加 window-state-listener-a 和 window-state-listener-b 并返回生成的多播监听。
      参数:
      a - 窗口状态监听器-a
      b - 窗口状态监听器-b
      返回:
      结果听众
      自从:
      1.4
    • add

      添加 window-focus-listener-a 和 window-focus-listener-b 并返回生成的多播监听。
      参数:
      a - 窗口焦点监听器-a
      b - 窗口焦点监听器-b
      返回:
      结果听众
      自从:
      1.4
    • add

      public static ActionListener  add(ActionListener  a, ActionListener  b)
      添加 action-listener-a 和 action-listener-b 并返回生成的多播监听。
      参数:
      a - 动作监听器 a
      b - 动作监听器 b
      返回:
      结果听众
    • add

      public static ItemListener  add(ItemListener  a, ItemListener  b)
      添加 item-listener-a 和 item-listener-b 并返回生成的多播监听。
      参数:
      a - item-listener-a
      b - item-listener-b
      返回:
      结果听众
    • add

      添加 adjustment-listener-a 和 adjustment-listener-b 并返回生成的多播监听。
      参数:
      a - 调整监听器a
      b - 调整监听器-b
      返回:
      结果听众
    • add

      public static TextListener  add(TextListener  a, TextListener  b)
      添加 text-listener-a 和 text-listener-b 并返回生成的多播监听。
      参数:
      a - 文本监听器 a
      b - 文本监听器-b
      返回:
      结果听众
    • add

      添加 input-method-listener-a 和 input-method-listener-b 并返回生成的多播监听。
      参数:
      a - 输入法监听器 a
      b - 输入法监听器 b
      返回:
      结果听众
    • add

      public static HierarchyListener  add(HierarchyListener  a, HierarchyListener  b)
      添加 hierarchy-listener-a 和 hierarchy-listener-b 并返回生成的多播监听。
      参数:
      a - 层次结构-listener-a
      b - 层次结构-listener-b
      返回:
      结果听众
      自从:
      1.3
    • add

      添加 hierarchy-bounds-listener-a 和 hierarchy-bounds-listener-b 并返回生成的多播监听。
      参数:
      a - hierarchy-bounds-listener-a
      b - 层次结构边界监听器 b
      返回:
      结果听众
      自从:
      1.3
    • add

      添加 mouse-wheel-listener-a 和 mouse-wheel-listener-b 并返回生成的多播监听。
      参数:
      a - 鼠标滚轮监听器 a
      b - 鼠标滚轮监听器 b
      返回:
      结果听众
      自从:
      1.4
    • remove

      public static ComponentListener  remove(ComponentListener  l, ComponentListener  oldl)
      从 component-listener-l 中删除旧的 component-listener 并返回生成的多播监听。
      参数:
      l - 组件监听器-l
      oldl - 被移除的组件监听器
      返回:
      结果听众
    • remove

      public static ContainerListener  remove(ContainerListener  l, ContainerListener  oldl)
      从 container-listener-l 中删除旧的 container-listener 并返回生成的多播监听。
      参数:
      l - 容器监听器-l
      oldl - 容器监听器被移除
      返回:
      结果听众
    • remove

      public static FocusListener  remove(FocusListener  l, FocusListener  oldl)
      从 focus-listener-l 中删除旧的 focus-listener 并返回生成的多播监听。
      参数:
      l - 焦点监听器-l
      oldl - 焦点监听器被移除
      返回:
      结果听众
    • remove

      public static KeyListener  remove(KeyListener  l, KeyListener  oldl)
      从 key-listener-l 中删除旧的 key-listener 并返回生成的多播监听。
      参数:
      l - 关键监听器-l
      oldl - 正在删除的密钥监听器
      返回:
      结果听众
    • remove

      public static MouseListener  remove(MouseListener  l, MouseListener  oldl)
      从 mouse-listener-l 中删除旧的 mouse-listener 并返回生成的多播监听。
      参数:
      l - 鼠标监听器-l
      oldl - 鼠标监听器被移除
      返回:
      结果听众
    • remove

      public static MouseMotionListener  remove(MouseMotionListener  l, MouseMotionListener  oldl)
      从 mouse-motion-listener-l 中删除旧的 mouse-motion-listener 并返回生成的多播监听。
      参数:
      l - mouse-motion-listener-l
      oldl - 鼠标动作监听器被移除
      返回:
      结果听众
    • remove

      public static WindowListener  remove(WindowListener  l, WindowListener  oldl)
      从 window-listener-l 中删除旧的 window-listener 并返回生成的多播监听。
      参数:
      l - 窗口监听器-l
      oldl - 正在删除的窗口监听器
      返回:
      结果听众
    • remove

      public static WindowStateListener  remove(WindowStateListener  l, WindowStateListener  oldl)
      从 window-state-listener-l 中删除旧的 window-state-listener 并返回生成的多播监听。
      参数:
      l - 窗口状态监听器-l
      oldl - 正在删除的窗口状态监听器
      返回:
      结果听众
      自从:
      1.4
    • remove

      public static WindowFocusListener  remove(WindowFocusListener  l, WindowFocusListener  oldl)
      从 window-focus-listener-l 中删除旧的 window-focus-listener 并返回生成的多播监听。
      参数:
      l - 窗口焦点监听器-l
      oldl - 正在删除的窗口焦点监听器
      返回:
      结果听众
      自从:
      1.4
    • remove

      public static ActionListener  remove(ActionListener  l, ActionListener  oldl)
      从 action-listener-l 中删除旧的 action-listener 并返回生成的多播监听。
      参数:
      l - 动作监听器-l
      oldl - 被移除的动作监听器
      返回:
      结果听众
    • remove

      public static ItemListener  remove(ItemListener  l, ItemListener  oldl)
      从 item-listener-l 中删除旧的 item-listener 并返回生成的多播监听。
      参数:
      l - item-listener-l
      oldl - 项目监听器被删除
      返回:
      结果听众
    • remove

      public static AdjustmentListener  remove(AdjustmentListener  l, AdjustmentListener  oldl)
      从 adjustment-listener-l 中删除旧的 adjustment-listener 并返回生成的多播监听。
      参数:
      l - 调整监听器-l
      oldl - 调整监听器被删除
      返回:
      结果听众
    • remove

      public static TextListener  remove(TextListener  l, TextListener  oldl)
      从 text-listener-l 中删除旧的文本监听并返回生成的多播监听。
      参数:
      l - 文本监听器-l
      oldl - 被删除的文本监听器
      返回:
      结果听众
    • remove

      public static InputMethodListener  remove(InputMethodListener  l, InputMethodListener  oldl)
      从 input-method-listener-l 中删除旧的 input-method-listener 并返回生成的多播监听。
      参数:
      l - 输入法监听器-l
      oldl - 正在删除的输入法监听器
      返回:
      结果听众
    • remove

      public static HierarchyListener  remove(HierarchyListener  l, HierarchyListener  oldl)
      从 hierarchy-listener-l 中删除旧的 hierarchy-listener 并返回生成的多播监听。
      参数:
      l - 层次结构监听器-l
      oldl - 层次结构监听器被移除
      返回:
      结果听众
      自从:
      1.3
    • remove

      从 hierarchy-bounds-listener-l 中删除旧的 hierarchy-bounds-listener 并返回生成的多播监听。
      参数:
      l - hierarchy-bounds-listener-l
      oldl - 层次结构边界监听器被删除
      返回:
      结果听众
      自从:
      1.3
    • remove

      public static MouseWheelListener  remove(MouseWheelListener  l, MouseWheelListener  oldl)
      从 mouse-wheel-listener-l 中删除旧的 mouse-wheel-listener 并返回生成的多播监听。
      参数:
      l - 鼠标滚轮监听器-l
      oldl - 鼠标滚轮监听器被移除
      返回:
      结果听众
      自从:
      1.4
    • addInternal

      protected static EventListener  addInternal(EventListener  a, EventListener  b)
      返回将 listener-a 和 listener-b 添加在一起所产生的多播监听。如果listener-a为null,则返回listener-b;如果 listener-b 为空,则返回 listener-a 如果两者都不为空,则它创建并返回一个新的 AWTEventMulticaster 实例,该实例将 a 与 b 链接起来。
      参数:
      a - 事件监听器-a
      b - 事件监听器-b
      返回:
      结果听众
    • removeInternal

      protected static EventListener  removeInternal(EventListener  l, EventListener  oldl)
      从 listener-l 中删除旧的监听后,返回生成的多播监听。如果 listener-l 等于旧的 listener 或 listener-l 为 null,则返回 null。否则,如果 listener-l 是 AWTEventMulticaster 的一个实例,那么它将从中删除旧的监听。否则,返回监听 l。
      参数:
      l - 正在从中删除的监听器
      oldl - 正在删除的监听器
      返回:
      结果听众
    • saveInternal

      protected void saveInternal(ObjectOutputStream  s, String  k) throws IOException
      序列化支持。将所有可序列化的监听保存到序列化流中。
      参数:
      s - 要保存到的流
      k - 放在每个可序列化监听器之前的前缀流
      抛出:
      IOException - 如果序列化失败
    • save

      protected static void save(ObjectOutputStream  s, String  k, EventListener  l) throws IOException
      将可序列化的监听链保存到序列化流中。
      参数:
      s - 要保存到的流
      k - 放在每个可序列化监听器之前的前缀流
      l - 要保存的监听器链
      抛出:
      IOException - 如果序列化失败
    • getListeners

      public static <T extends EventListener > T[] getListeners(EventListener  l, Class <T> listenerType)
      返回由指定的 java.util.EventListener 链接为 FooListener 的所有对象的数组。 FooListenerAWTEventMulticaster 使用 addFooListener 方法链接。如果指定了 null 监听器,则此方法返回一个空数组。如果指定的监听器不是 AWTEventMulticaster 的实例,则此方法返回一个仅包含指定监听器的数组。如果没有链接此类监听器,则此方法返回一个空数组。
      类型参数:
      T - 监听器类型
      参数:
      l - 指定的 java.util.EventListener
      listenerType - 请求的监听器类型;此参数应指定从 java.util.EventListener 派生的接口
      返回:
      由指定的多播监听器链接为 FooListener 的所有对象的数组,如果指定的多播监听器没有链接此类监听器,则为空数组
      抛出:
      NullPointerException - 如果指定的 listenertype 参数是 null
      ClassCastException - 如果 listenerType 没有指定实现 java.util.EventListener 的类或接口
      自从:
      1.4