Avec une course de JavaFX application, ouvrir une nouvelle fenêtre avec son propre contrôleur de classe

Je suis en utilisant SceneBuilder en conjonction avec Netbeans JavaFX bibliothèque pour ce projet. J'utilise Scenebuilder pour créer le fxml et netbeans pour les classes de contrôleur. L'objectif est de construire une assez complexe d'application qui doit être déployé.

Je peux lancer une application JavaFX. et raccorder le contrôleur de classe de l'amende juste. Cependant, lorsque j'essaie d'ouvrir une nouvelle fenêtre je n'arrive pas à lier une classe de contrôleur de la nouvelle fenêtre. Pour garder les choses simples, je voudrais avoir un contrôleur séparé de classe pour la nouvelle fenêtre due à un complexe de back-end.

TL;DR-en Essayant d'ouvrir une nouvelle fenêtre sur JavaFX application avec un contrôleur de classe. Contrôleur de classe n'est pas contraignant.

Exemples de Code ci-dessous

Modèle de classe -- wrapper pour le lancement de l'application

public class Model extends Application{
    public static void main(String[] args){
         Application.launch(Model.class, args);
    }
    @Override
    public void start(Stage stage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
        stage.setScene(new Scene(root));
        stage.show();
    }
}

De l'échantillon.fxml -- fxml fichier de l'application principale

Sample.java -- s'étend Initializable, est la classe de contrôleur pour l'Échantillon.fxml. Ci-dessous est extrait de code où j'essaie d'ouvrir une nouvelle fenêtre intitulée "ServerConfigChooser

try{
    Parent root = FXMLLoader.load(getClass().getResource("ServerConfigChooser.fxml"));
    FXMLLoader loader = new FXMLLoader(getClass().getResource("ServerConfigChooser.fxml"));
    ServerConfigChooser controller = new ServerConfigChooser();

    loader.setController(controller);
    loader.setRoot(root);

    Stage stage = new Stage();
    stage.setScene(new Scene(root));
    stage.show();
} catch (IOException ex)

ServerConfigChooser.java -- implémente Initializable

C'est là que j'ai des problèmes. Je ne peux pas simplement déclarer les variables avec le même fxid que les variables dans la .fichier fxml. La méthode initialize() ne se déclenche pas lorsque la classe est appelée.

La raison pour laquelle le constructeur dans la ServerConfigChooser classe, c'est que je ne pouvais pas le feu la méthode initialize() automatiquement. J'ai le feu à la main dans le constructeur.

Toutes les solutions sont les bienvenues!

JavaFX aura à faire pour le moment. Espérons-le, les fuites de mémoire sera résolu dans un avenir proche
Un mot pour le sage. Poser des questions sur le dimanche est généralement la moins active du temps de la semaine. Attendre le lundi pour de meilleurs résultats
Je suis d'accord avec jth41

OriginalL'auteur Kyte | 2014-01-19