gpt4 book ai didi

java - JavaFX 中的 MouseEvent、ActionEvent 和 Event 有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-31 20:08:54 24 4
gpt4 key购买 nike

我是 JavaFX 的新手,发现有不同类型的事件处理程序。 JavaFX 中的 MouseEvent、ActionEvent 和 Event 有什么区别?

最佳答案

Event是所有事件类型的父类(super class)。

示例事件类型是:

  • KeyEvents当按下一个键时生成。
  • MouseEvents由鼠标交互(如移动或单击按钮)生成的。
  • 还有很多。

事件不必仅由 JavaFX 系统生成。您可以发射和消耗自己的 custom events如果您愿意,但通常情况下,大多数事件都是由 JavaFX 系统生成的。

ActionEvent是一种事件,通常可以更轻松地对被激活的事物进行编码和响应。

通常会为单个操作生成多个事件。例如,如果你用鼠标点击一个按钮,你会得到 MOUSE_PRESSED , MOUSE_RELEASEDMOUSE_CLICKED除了 ActionEvent 之外的事件。

如果您想响应按钮激活,您可以监听 MOUSE_CLICKED 事件,但不推荐这样做。这是因为还有其他方法可以激活按钮,或者可以禁用按钮,在这种情况下您不想对其执行操作。如果它是默认按钮,则 ENTER 键可以触发该按钮,或者用户可以在焦点位于该按钮上时通过按 SPACE 来激活该按钮。当按钮被键盘激活时,则没有关联的鼠标事件,因此不建议监听鼠标事件来激活鼠标。通常,您只想知道按钮被激活了,而不是什么原因导致了它,您不想自己监视所有可能导致激活的事件类型以及事件触发时应该在什么条件下实际发生激活。

JavaFX 提供了 ActionEvent,只要激活按钮,就会发出该事件,而不管用于激活它的方法如何。这使您编写代码变得更加容易,因为您只需编写 button.setOnAction(event -> handleButtonAction());

ActionEvent 还用在许多看起来不值得或没有必要创建特定类型事件的地方,例如在激活关键帧时在动画 KeyFrame 中。所以 ActionEvents 不仅仅是用来处理按钮事件,而是可以用在很多地方。

关于java - JavaFX 中的 MouseEvent、ActionEvent 和 Event 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45313784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com