本文概述
- 活动类型
- 在JavaFX中处理事件
- 活动交付流程
在JavaFX中, 只要用户与应用程序节点进行交互, 就会发生一个事件。用户可以使用各种来源来生成事件。例如, 用户可以使用鼠标, 也可以按键盘上的任何按钮, 或者可以滚动应用程序的任何页面以生成事件。因此, 我们可以说事件基本上是通知, 告诉我们在用户端发生了某些事情。
完美的应用程序是处理事件最少的时间。本教程的这一部分介绍了JavaFX中处理事件的方式。
活动类型 通常, 事件主要分为以下两种类型。
1.前景事件
前景事件主要是由于用户与应用程序GUI的直接交互而发生的。例如单击按钮, 按下键, 从列表中选择项目, 滚动页面等。
2.背景事件
后台事件不需要用户与应用程序进行交互。这些事件主要发生在操作系统中断, 故障, 操作完成等方面。
在JavaFX中处理事件 在JavaFX中, 事件基本上用于通知应用程序用户所采取的操作。 JavaFX提供了捕获事件, 将事件路由到其目标并让应用程序处理事件的机制。
JavaFX提供了javafx.event.Event类, 该类包含代表可以在JavaFX中生成的事件类型的所有子类。任何事件都是Event类或其任何子类的实例。
JavaFX中有各种事件, 例如MouseEvent, KeyEvent, ScrollEvent, DragEvent等。我们还可以通过继承类javafx.event.Event来定义自己的事件。
下表描述了事件的属性。
序号 | 属性 | 描述 |
---|---|---|
1 | 事件类型 | 这是正在生成的事件的类型。它基本上是EventType类的实例。它是分层的。 EventType类的实例进一步分类为各种事件, 例如KeyEvent类包含KEY_PRESSED, KEY_RELEASED和KEY_TYPED类型。 |
2 | Source | 它代表事件的来源, 即负责产生事件的来源。 |
3 | Target | 它是在其上生成事件的节点。对于生成的事件, 它保持不变。它是实现EventTarget接口的任何类的实例。 |
1.路线建设
创建事件调度链, 以便在事件生成时确定事件的默认路由。事件分发链包含从阶段到生成事件的节点的路径。
在以下图像中为在场景图节点之一上生成的事件创建了一个事件分发链。
文章图片
2.事件捕获阶段
一旦创建了事件调度链, 便从事件的源节点调度事件。事件从上到下遍历所有节点。如果事件过滤器已在这些节点中的任何一个上注册, 则将执行它。如果未向事件过滤器注册任何节点, 则事件将转移到目标节点。在这种情况下, 目标节点将处理事件。
3.事件冒泡
一旦事件由目标节点或任何已注册的过滤器处理, 事件将再次从底部遍历所有节点到阶段节点。如果这些节点中的任何一个已向事件过滤器注册, 那么它将被执行, 否则该过程将完成。
4.事件处理程序和过滤器
【JavaFX事件处理】事件处理程序和过滤器包含用于处理事件的应用程序逻辑。一个节点可以注册到多个事件过滤器。接口javafx.event.EventHandler必须由所有事件处理程序和过滤器实现。
推荐阅读
- JavaFX高斯模糊效果
- JavaFX FlowPane
- JavaFX FileChooser
- JavaFX填充过渡
- JavaFX淡入淡出过渡
- JavaFX事件处理程序
- JavaFX事件过滤器
- JavaFX椭圆
- JavaFX DropShadow效果