comment puis-je obtenir un élément dans JavaFx à l'aide d'un id?

Je suis nouveau sur le FXML et je suis en train de créer un gestionnaire d'événements pour tous les clics sur le bouton à l'aide d'un switch. Toutefois, pour ce faire, j'ai besoin d'obtenir les éléments à l'aide de l'id. J'ai essayé ce qui suit, mais pour une raison quelconque (peut-être parce que je suis en train de faire dans la classe de contrôleur et de ne pas sur-le-main), je reçois une exception de dépassement de pile.

public class ViewController {
public Button exitBtn;

public ViewController() throws IOException {
    Parent root = FXMLLoader.load(getClass().getResource("mainWindow.fxml"));
    Scene scene = new Scene(root);

    exitBtn = (Button) scene.lookup("#exitBtn");
}

}

Alors comment vais-je obtenir un élément (un bouton par exemple) en utilisant son id comme une référence?

Le fxml bloc pour le bouton:

<Button fx:id="exitBtn" contentDisplay="CENTER" mnemonicParsing="false" onAction="#handleButtonClick" text="Exit" HBox.hgrow="NEVER" HBox.margin="$x1" />

Utiliser un contrôleur de classe
Vous mélangez le id et fx:id balises. lookup est basé sur id. fx:id est pour l'injection dans la classe du contrôleur.
c'est une classe de contrôleur
ok, mais quand même. comment dois-je faire? La façon dont j'ai essayé ne fonctionne pas comme je ne peux pas obtenir la scène du fichier fxml
Alors, pourquoi êtes-vous de charger le fxml dans le contrôleur? Qui n'a pas de sens: vous créez une instance du contrôleur qui charge le FXML, au cours de laquelle un autre contrôleur instance est créée...

OriginalL'auteur Rakim | 2016-01-28