Reputation: 341
JAVA's abstraction is somehow brought out by allowing us to create a JFrame (and save it in its own .JAVA file) and populate it with different kinds of objects such as JPanels, JTextFields ... (saved in different files) if and when needed by using the remove(), add(), validate(), repaint() methods.
I'm trying to move my JAVA project to JAVA-FX due its great flexibility in design via JavaFX Scene Builder and css. Are there any equivalents to the above methods here (In JAVA-FX)? Is there a way I could create a Pane or a Label ... and save it in its own file as it waits to replace onother Pane with its own child Nodes (and saved in its own file) on the Stage later when it's called via an action, such as a button click?
Would really appreciate any help. Sample code enumerating the above could help also.
Thank you all in advance.
Your's trully, Complete JAVA-FX Newbie.
Upvotes: 1
Views: 1302
Reputation: 49205
In a regular JavaFX application, there is only one primary stage and its one scene. Create your FXML file (optionally with its controller) containing any JavaFX node and load this file on button action using FXMLoader
. Then you can use the loaded node as a root of scene;
scene.setRoot(MYNode)
(though only Parent
can be set as root)
or add it to subtree of root node as a child;
if you know the substructure: scene.getRoot().getChildren().get(3).getChildren().add(MYNode);
if you know the id
: scene.lookup("myPane").getChildren().add(MYNode);
The same logic applies to another FXML file(s) being loaded in another action event.
Upvotes: 1