A simple exercise in trying to understand the sequence of events generated by a JavaFX button.
I posted the question
JavaFX events sent to a button control: why two MOUSE_ENTERED / MOUSE_EXITED events?
to Stack Overflow, and after clarification, we get the code and diagrams in this project.
The program creates a Button Control which you can prod.
Information about events generated by the Button Control (aka. "received at the Button Control's event handlers) is then printed out.
See the MouseEvent
JavaDoc for a description of events.
After testing a bit, we obtain the following (not quite formally correct) statechart that describes what events are generated. The statechart is large-ish because the sequence of event generated depends on where exactly the mouse button was pressed - outside the Button Control, inside the Button Control or inside the Button Control's label. (But there may well be a simpler statechart.)
The above has been edited in yEd, which has no notion about statechart semantics. The result is a graphml file.