26

Is it possible in javafx to open new stages (windows) from another fxml with a button? Thanks for the answers.

1
  • 1
    Yes. Can you show some code and explain which part you are stuck with? Commented Nov 27, 2014 at 0:01

2 Answers 2

54

Use the code below on button click:

try {
    FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("Demo.fxml"));
    Parent root1 = (Parent) fxmlLoader.load();
    Stage stage = new Stage();
    stage.initModality(Modality.APPLICATION_MODAL);
    stage.initStyle(StageStyle.UNDECORATED);
    stage.setTitle("ABC");
    stage.setScene(new Scene(root1));  
    stage.show();
}
Sign up to request clarification or add additional context in comments.

3 Comments

Thank you it works this code, but I'd like a window can be moved separately and close top right corner.
To move and close window comment line with style: StageStyle.UNDECORATED
It's also a good idea to add stage.onCloseRequestProperty().setValue(e -> Platform.exit()); to the starting window's stage in order to exit the application closing all the other windows on pressing it's close button.
25

I had to modify the code a bit and it works fine. Thank you again for the code!

public void pressButton(ActionEvent event) throws Exception {               
    try {
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/A.fxml"));
        Parent root1 = (Parent) fxmlLoader.load();
        Stage stage = new Stage();
        stage.setScene(new Scene(root1));  
        stage.show();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.