 <p>I would say that the best alternative is to use Controllers since they, as you said, work well with FXML injection.</p> <p>I don't see how letting one parent controller class control the widget is a bad thing since a class can implement interfaces of your choosing and even extend another class, inheriting its methods/attributes.</p> <p>Plus, you can even use Scene Builder to easily manipulate the widget if you do import your fxml into scene builder. </p>