JavaFX - Comment faire pour utiliser une méthode d'un contrôleur à partir d'un autre contrôleur?

De travail avec SceneBuilder. J'ai 2 étapes, chacune avec un contrôleur:
stage1Controller,
stage2Controller.
Stage1Controller :

public class Stage1Controller {
    @FXML
    private MenuItem translate;
    @FXML
    private Menu file;
    @FXML
    private Menu edit;
    @FXML
    private Menu help;


    @FXML 
    private void handleTranslate (ActionEvent event){
        translateFirstStage();
        //HOW TO ACCESS THE stage2Controller setLabel()??
    }

    private void translateFirstStage(){
        file.setText("Fichier");
        edit.setText("Modifier");
        help.setText("Aide");
    }
}

Stage2Controller:

public class Stage2Controller {
    @FXML
    private Label lb;


    private void setLabel(String string){
        lb.setText("string");
    }
}

Ici est de savoir comment les deux fxml les fichiers sont chargés dans Main.java classe à l'aide de 2 méthodes
(appelé dans Start(Stage primaryStage) méthode):

public void firstStage() {
        try {
            //Load root layout from fxml file.
            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(Main.class.getResource("view/stage1.fxml"));
            rootLayout = (BorderPane) loader.load();

            //Show the scene containing the root layout.
            Scene scene = new Scene(rootLayout);
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void secondStage() {

        try {
            //Load root layout from fxml file.
            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(Main.class.getResource("view/stage2.fxml"));
            XD = (AnchorPane) loader.load();

            //Show the scene containing the root layout.
            Scene scene = new Scene(XD);
            Stage stage = new Stage();
            stage.setScene(scene);
            stage.show();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
  • La handleTranslate(ActionEvent event) méthode est utilisé comme un OnAction méthode pour la MenuItem translate dans la première Étape, elle se traduit par l'affichage dans les deux étapes.

Comment puis-je mettre setLabel dans handleTranslate Méthode ? Grâce

Où sont les fxml fichiers correspondant aux contrôleurs chargés? (Vous avez besoin d'une référence à votre Stage2Controller instance dans votre Stage1Controller.)
les deux fxml les fichiers sont chargés dans la classe mainApp qui est séparé de ses deux.
Merci d'éditer votre question afin de montrer que le code.
Fait, j'ai ajouté la façon dont je l'ai chargé le 2 fxml fichiers.
Yup, merci; ça aide. Voir la réponse.

OriginalL'auteur Calips | 2015-04-15