Comment accéder à un JavaFx Scène à partir d'un Contrôleur?

Je suis de la conversion d'un pur JavaFx application, dans lequel le code ci-dessous a bien fonctionné lors de la mettre tous dans une classe, à un FXML, où la Scène de la déclaration et du gestionnaire de bouton sont dans des classes séparées. Dans le Contrôleur, je suis en train de mettre en œuvre une méthode qui permet à l'utilisateur de choisir un répertoire et de le stocker dans une variable pour l'utiliser plus tard:

private File sourceFile;
DirectoryChooser sourceDirectoryChooser;

@FXML
private void handleSourceBrowse() {
        sourceDirectoryChooser.setTitle("Choose the source folder");
        sourceFile = sourceDirectoryChooser.showDialog(theStage);
}

Cependant, "theStage", une Étape qui, la méthode exige, n'existe(si c'est la bonne terminologie) dans FolderSyncer4.java:

public class FolderSyncer4 extends Application {

    final String FOLDER_SYNCER = "FolderSyncer";

    Stage theStage;

    @Override
    public void start(Stage primaryStage) throws Exception {
        theStage = primaryStage;

        //TODO do the FXML stuff, hope this works
        Parent root = FXMLLoader.load(getClass().getResource("FolderSyncerMainWindow.fxml"));
        theStage.setScene(new Scene(root, 685, 550));
        theStage.setTitle(FOLDER_SYNCER);
        theStage.show();
    }
}

Comment puis-je contourner ce problème? J'ai besoin d'avoir cette méthode de mise en œuvre de nouveau en quelque sorte, mais du coup je ne peux pas passer le stade comme un argument.

Vous faites référence à handleSourceBrowse() dans votre .fxml avec un onAction attribut sur votre Button élément, comme ... onAction="#handleSourceBrowse" ..., droit?
Yep, il est là. Il m'a incité à ajouter @FXML annotation à l'handleSourceBrowse() la méthode, j'ai donc fait(mise à jour de la question en conséquence), mais le problème persiste.
Double Possible de Comment puis-je ouvrir le JavaFX FileChooser à partir d'un contrôleur de classe?

OriginalL'auteur Sargon1 | 2015-11-26