【问题标题】:Who creates event objects and where are they created?谁创建事件对象,它们在哪里创建?
【发布时间】:2013-07-25 19:40:16
【问题描述】:

我想知道谁在 Java 中创建事件对象?我的问题不是如何在 Java 中创建自定义事件,而是谁创建事件对象。

例如,在JButton 上单击鼠标会生成一个事件,这意味着创建了一个事件对象。

现在我的问题是谁创建了该事件对象,它是在哪里创建的(以哪种方法)?它是在processMouseEvent() 方法中创建的还是在哪里创建的?

任何答案将不胜感激。提前致谢。

【问题讨论】:

  • 您正在使用的框架 (Swing) 创建并调度它。
  • 你能告诉我是哪个类(或)方法做的吗?

标签: java swing events event-handling


【解决方案1】:

为什么你认为你需要知道这一点?你想解决什么问题?

如果您好奇,请在 Java 源代码中搜索 new MouseEvent 之类的内容。如果您没有找到匹配项,则可能是一些我们无权访问的较低级别的代码。

您也可以查看Global Event Dispatching

【讨论】:

  • 您能至少告诉我事件生成的流程吗?
  • 不,因为我不知道(这个信息对我来说并不重要)而且你还没有说你要解决什么问题。
  • 基本上,我不是在尝试解决问题,这是一个我想知道的理论问题。如您的帖子中所述,Swing 通过将事件分派给适当的组件进行处理来处理交互。 哪个类/方法执行此操作,即谁分派和谁生成?
  • 这些是与操作系统的低级交互。
  • 好的。这意味着事件对象是用本机代码(如 C/C++)创建的?
【解决方案2】:

“Event source是状态发生变化的对象,它产生Events,Event对象(Event)封装了事件源中的状态变化,Event listener就是想要被通知的对象,Event source对象委托为事件侦听器处理事件的任务。”

http://zetcode.com/tutorials/javaswingtutorial/swingevents/

阅读整篇文章。它应该会有所帮助。

【讨论】:

    猜你喜欢
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2018-02-27
    • 1970-01-01
    相关资源
    最近更新 更多