Java 组件类的processEvent()方法

Java 组件类的processEvent()方法,java,event-handling,awt,event-listener,Java,Event Handling,Awt,Event Listener,在处理各种事件时,我的一般策略是创建一个xxxHandler类,如MouseHandler、WindowHandler,它扩展了Java提供的相应的xxxAdapter类 我刚刚浏览了一些关于处理事件的其他文本,其中说,无论何时扩展任何EventListener接口,比如ActionListener,都必须调用构造函数中的enablevents(AWTEvent e)方法,并在生成事件时调用super.processXXXEvent() 我发现这种方法非常令人困惑。这些方法的访问说明符为prot

在处理各种事件时,我的一般策略是创建一个
xxxHandler
类,如
MouseHandler
WindowHandler
,它扩展了Java提供的相应的
xxxAdapter

我刚刚浏览了一些关于处理事件的其他文本,其中说,无论何时扩展任何
EventListener
接口,比如
ActionListener
,都必须调用构造函数中的
enablevents(AWTEvent e)
方法,并在生成事件时调用
super.processXXXEvent()

我发现这种方法非常令人困惑。这些方法的访问说明符为
protected
,因此我假设这些方法仅供内部使用

  • 这些方法到底是为了什么
  • 他们真的需要处理事件吗
  • 它们是否比通常的
    actionPerformed()
    mouseMoved()
    等方法有什么好处?在这些方法中,您添加代码来处理方法定义中的事件,而不调用任何
    super
    方法

    需要帮助。简单的词语比技术上的胡言乱语更受欢迎

    这些方法的具体用途是什么

    processEvent()
    方法过滤发生的事件类型。此方法的参数类型为
    AWTEvent
    类型。 过滤后,此方法调用相应的
    processXYZEvent()
    方法,该方法接受相应的事件对象

    例如,
    processMouseEvent(MouseEvent)

    processXYZEvent()
    方法通过将事件对象传递给处理程序来通知相应的侦听器事件

    例如,
    processMouseEvent(MouseEvent)
    通知已注册的鼠标侦听器

    enableEvents()
    方法决定将哪些事件提供给
    processEvent()
    方法。无法重写此方法,因为它是最终的。但是,可以在
    组件
    类的子类中访问它,以确定组件支持的事件类型

    他们真的需要处理事件吗

    他们的作用如上所述。这意味着它们是处理事件所必需的,因为您只能在创建和调度事件对象时处理事件,而这些方法就是这样做的

    这些方法的具体用途是什么

    processEvent()
    方法过滤发生的事件类型。此方法的参数类型为
    AWTEvent
    类型。 过滤后,此方法调用相应的
    processXYZEvent()
    方法,该方法接受相应的事件对象

    例如,
    processMouseEvent(MouseEvent)

    processXYZEvent()
    方法通过将事件对象传递给处理程序来通知相应的侦听器事件

    例如,
    processMouseEvent(MouseEvent)
    通知已注册的鼠标侦听器

    enableEvents()
    方法决定将哪些事件提供给
    processEvent()
    方法。无法重写此方法,因为它是最终的。但是,可以在
    组件
    类的子类中访问它,以确定组件支持的事件类型

    他们真的需要处理事件吗


    他们的作用如上所述。这意味着它们是处理事件所必需的,因为您只能在创建和调度事件对象时处理事件,并且这些方法可以执行此操作。

    “我刚才正在浏览一些关于处理事件的其他文本”您在哪里看到的?请链接或参考。
    enableEvent
    我找不到这样的方法,只有
    enableEvents
    我认为这些都是您所说的处理和传递事件的内部方法,它们不应该也不能直接使用。浪费什么?这是一种被广泛采用和推荐的方法。看起来这篇文章融合了两个想法,
    事件生成器
    调用了
    processxxevent
    ,它将调用
    监听器。handlexxxevent
    监听器
    只做自己的事情。它也是
    事件生成器
    ,它将调用
    enableEvents
    “我刚才在看一些关于处理事件的其他文本”,您在哪里看到的?请链接或参考。
    enableEvent
    我找不到这样的方法,只有
    enableEvents
    我认为这些都是您所说的处理和传递事件的内部方法,它们不应该也不能直接使用。浪费什么?这是一种被广泛采用和推荐的方法。看起来这篇文章融合了两个想法,
    事件生成器
    调用了
    processxxevent
    ,它将调用
    监听器。handlexxxevent
    监听器
    只做自己的事情。它也是
    事件生成器
    ,它将调用
    启用事件