2 回答
TA贡献1834条经验 获得超8个赞
在 JavaFX 应用程序线程通过 handle() 将任何其他事件提交给 X 之前,步骤 2 中的处理是否有望完成?
是的。因此 JavaFX 线程按顺序执行所有操作。例如,如果您要Thread.sleep
在handle()
方法中添加 a ,则 JavaFX 线程在睡眠完成之前不会执行任何操作。它按顺序完成所有处理,我猜这是线程的定义元素。它不会关闭并并行处理其他事件。这在动画中非常重要,因为所有这些处理都必须在 JavaFX 线程计算和显示下一帧之前发生。
附录:
考虑到这一点 - 如果光标位于 Rectangle 上,则由于 MouseEvent 会发布一个 MouseEvent.MOUSE_EXIT 事件而导致的 Rectangle 删除,因为在 JavaFX 的眼中,这就是刚刚发生的事情。该 MouseEvent 是在 JavaFX 应用程序线程上生成的,并将由它处理。现在是要考虑的事情。JavaFX 应用程序线程可以跟随 MOUSE_EXIT 到 X 的 handle() 或继续 dcoig 任意处理。它做什么?
MOUSE_CLICKED 事件将首先被处理。在线程处理完所有触发的事件后,它会绘制到屏幕上。屏幕更新完成后,它将处理任何新的触发事件,例如 MOUSE_EXIT。例如,假设您创建了一个节点,该节点删除了 MOUSE_ENTERED 上的节点,然后将其放回 MOUSE_EXIT 上。当您将鼠标移到这个节点上时,它会以帧速率闪烁——而不是在更新屏幕之前进入无限循环。
添加回答
举报