There, the events of the same type in the Handler phase are no longer being called.

One more thing, if the Filter event is listened on KeyEvent.KEY_TYPED and event.consume() is called, the default behavior of key will be consumed as well, which means no character will be printed out.

To make the example more complete (Thanks to Peter Moufarrej), let's add parent-child idea into the scene. Suppose the TextField is inside a GridPane and have all the same EventHandlers and EventFilters as the TextField.

As you can see the execution order is from parent.eventFilter -> child.eventFilter -> child.eventHandler -> parent.evenHandler. The EventFilter phase is like the Event Capture phase and EventHandler is like the Event Bubble phase of JavaScript.