I am building an app and I want to put in every page in the app the text "hello" with the label that writes the name of the client that is connected now ,how can I do that ??? for example : if I am connected now, in the top of all the pages in the app I will see hello Nadeen
            Asked
            
        
        
            Active
            
        
            Viewed 200 times
        
    1 Answers
2
            
            
        Use composition, not inheritance.
Inheritance is the wrong concept to try to achieve something like this. Instead add create a parent layout for this and add functionality to display content in it.
Example:
public class ParentController {
    @FXML
    private StackPane container;
    public void setContent(Node content) {
        // replace old container content
        container.getChildren().setAll(content);
    }
    // code for setting the name...
}
<VBox>
    <children>
        <Label text="Nadeen"/>
        <StackPane fx:id="container" VBox.vgrow="ALWAYS"/>
    <children>
</VBox>
This allows you to replace the content with the results of loading different fxml files.
ParentController controller = ...;
controller.setContent(someNode);
...
controller.setContent(someOtherNode);
Make sure you properly access the controller as described here:
Passing Parameters JavaFX FXML
You could also go with the custom component approach...
 
    
    
        fabian
        
- 80,457
- 12
- 86
- 114
