Tenho três classes, sendo que a distribuicao é a seguinte:
1- main;
2- controller 2;
3- controller 3;
Sendo que a classe main(1) é resonsavel por chamar o metodo start da classe controller 2.
A classe controller 2 é responsavel por chamar o metodo start da classe controller 3; (Um stage chamando outro, ou seja, duas janelas distintas).
Quando digo start estou dizendo que tenho dois stages diferentes. Sendo que um é para a controller 2 e o outro para a controller 3.
Descobri que para fechar um stage devo usar o metodo .close();. Porem, como faço para a controller 3 fechar o stage que tem start na controller 2? Lembrando que a controller 2 abri a 3.
Tentei colocar o stage publico e chama-lo na classe 3 da seguinte maneira.
public Class Exemplo{
public Stage stage_help;
@FXML
private void button_menu_showHelp(ActionEvent event) {
try {
stage_help = new Stage();
Parent root = FXMLLoader.load(getClass().getResource("/br/com/calculator/view/Help.fxml"));
Scene scene_help = new Scene(root);
scene_help.setFill(Color.web("#dfdfdf"));
stage_help.setTitle("Ajuda");
stage_help.initStyle(StageStyle.UTILITY);
stage_help.setScene(scene_help);
stage_help.show();
} catch (IOException ex) {
Logger.getLogger(CalculatorController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
[/code][code]
publlic class Exemplo2{
@FXML
private void button_function_ok(ActionEvent event) {
Exemplo1 a = new Exemplo1();
a.stage_help.close();
}
}
Só que não funcionou. Cmo eu poderia fazer isso?