How can I add a new node to the Scene in java code when Scene is initially loaded from FXML ? I have loaded from FXML as shown below
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
Scene scene = new Scene(root, 1000, 600, Color.DODGERBLUE);
Now say for example how do I add button to the scene in Java code?
I do not know the reason behind your question. If what you want is to insert some nodes dynamically during the application or scene initialization, I suggest you use a
initialize
method at your controller.This method must be annotated with
@FXML
and have the following signature:Then, you can inject the container where the button must be inserted on the controller and add the button to it:
The method
initialize
is called after the components defined at the FXML file were built.Here is one way to do this:
The snippet above assumes that the top container defined in your FXML is a VBox, if it is not a VBox, just cast it to whatever type you have chosen.
The type is likely a Pane, so casting to a Pane will work in most cases. Using a layout Pane as a Parent is usually recommended for most layout tasks in JavaFX.