1

I have one window witch contain a single BorderPane, in the top i have button when clicked thez display in the center the content of another .fxml

~FXMLDocument.java

public class FXMLDocumentController implements Initializable {
    @FXML private Pane content;
    ...
    @Override
    public void initialize(URL url, ResourceBundle rb) {
    content.getChildren().clear();
    content.getChildren().
                 add(FXMLLoader.load(getClass().getResource("page1.fxml")));
    }
}

the display is working fine, what i want to do next is a button in my first page to switch to another one,

~FXMLDocument.java

public class FXMLDocumentController implements Initializable {
  public FXMLDocumentControllerPage1 c1;
  @FXML private Pane content;
  @Override
  public void initialize(URL url, ResourceBundle rb) {
    c1 = new FXMLDocumentControllerPage1();
    c1.setController(this);
    ...
  }
  ...
  public void change_to_page3()
  {
    try {
            content.getChildren().clear();
            content.getChildren()
                .add(FXMLLoader.load(getClass().getResource("page3.fxml")));
    } catch (IOException ex) {
            Logger.getLogger(FXMLDocumentController.class.getName())
                                                           .log(Level.SEVERE, null, ex);
    }
  }
}

~FXMLDocumentControllerPage1.java

public class FXMLDocumentControllerPage1 
{
    private FXMLDocumentController controller ;

    public void setController(FXMLDocumentController c) {
        controller = c;
    }

    @FXML private void changePage(ActionEvent event) {
        if (controller != null)
            controller.change_to_page3();
    }
}

when my button "change page" is clicked the changePage method is executed but my controller is null so it can't do "change_to_page3()"

how can i call my method "change_to_page3()" witch doesn't not have any arguments from my controller "FXMLDocumentController" in my controller "FXMLDocumentControllerPage1"

Falkke
  • 11
  • 2

0 Answers0