java.awt.Component.dispatchEvent() 的目的和行为

Posted

技术标签:

【中文标题】java.awt.Component.dispatchEvent() 的目的和行为【英文标题】:java.awt.Component.dispatchEvent()'s purpose and behavior 【发布时间】:2011-01-07 10:17:20 【问题描述】:

我一直在阅读的大多数tutorials 和文档似乎表明大多数组件通信是通过使用listeners 订阅来进行的。

Java 中的docs 表示java.awt.Component#dispatchEvent(AWTEvent e)

向该组件或其子组件之一发送事件。在为组件启用的 1.1 样式事件返回之前调用 processEvent。

鉴于侦听器似乎司空见惯,dispatchEvent 的目的是什么以及如何/在哪里接收分派的事件?

【问题讨论】:

【参考方案1】:

组件必须接收事件才能在某处分派。这是组件接收事件的地方。事件来自EventQueue

【讨论】:

所以这可能会被 Java 在内部使用,因为它会注意到来自 OS/Gui 系统的事件,例如本地鼠标点击等,而不是用于组件间通信对事件的完全编程控制? 你是什么意思?它不适用于日常代码。而且你不能覆盖它。 换句话说,我真的不需要使用它,因为我可以创建自己的事件和事件监听器。原始的 AWT 代码可能会使用它来调度某些事件,但我不需要关心它,因为我会通过一些相关的侦听器收到事件的通知。【参考方案2】:

我研究了如何将自定义事件发送到 JFrame,最后我成功编译了一些在网上找到的示例。

功能结果可见这里:

link text

希望它可能有用!

塞尔吉·库德

【讨论】:

以上是关于java.awt.Component.dispatchEvent() 的目的和行为的主要内容,如果未能解决你的问题,请参考以下文章