Update 2022
The best write-up on this topic is Eden Coding’s:
The best StackOverflow answer is:
The original answer from many years ago follows. Some of the information in it is still relevant. Some links and referenced frameworks are no longer available or supported. However, you don’t need a framework outside of the JavaFX core capabilities to implement the concepts (as demonstrated in the modern links in this update).
Thoughts on MVC
MVC is a pretty loosely defined pattern which is open to (often somewhat vague) interpretations of what each of the things in MVC stand for (especially the controller). There is a great discussion of the MVC architecture with respect to GUI toolkits by Martin Fowler.
On Design Patterns and FXML
JavaFX core FXML based processing is built to be more of a toolkit rather than a complete development framework. The idea being that other frameworks could be layered on top of JavaFX and FXML and the underlying JavaFX/FXML implementations and the controllers for them would not push any kind of agenda or architectural constraints on the higher level frameworks.
As a result, there is a deliberately loose analogy and mapping of core FXML based processing and their controllers to an MVC architecture.
See JavaFX and MVP – a smörgåsbord of design patterns for further discussion.
Consider using a higher-level framework
You might benefit from adopting an "opinionated" JavaFX framework such as afterburner.fx, which utilizes controllers and FXML but provides a bit more of a rigid structured framework. Afterburner.fx follows a Model View Presenter (MVP) model. Though Afterburner.fx provides more functionality and structure than plain core JavaFX+FXML, it does so in a minimal way by adding few extra classes and APIs that you need to learn to use it.