2012-12-28 2 views
1

Je suis en train de convertir une application swing existante en JavaFX. Je pense que ce code renverrait un noeud appelé "#paneRightBottom", mais il renvoie null. En utilisant le débogueur netbeans, je suis capable d'explorer le "topNode" et de trouver le nœud "#paneRightBottom" à six niveaux de profondeur, donc il est là. J'ai lu les docs en ligne et pense que je devrais avoir un noeud. Est-ce que quelqu'un a une idée de l'endroit où je me suis trompé?javafx scene.lookup

 Node topNode = FXMLLoader.load(AFI.class.getResource("afimain.fxml")); 
     System.out.println(topNode.getId()); 
     Node node = topNode.lookup("#paneRightBottom"); 

Répondre

3

Vérifiez si le nœud, que vous essayez de rechercher, a une id="paneRightBottom" et non fx:id="paneRightBottom". Si cela a ensuite donné plus de détails en publiant votre fichier fxml aussi.

+0

Merci @Uluk, j'avais déjà balisé le xml pour tenir compte des différents formats d'id. Je le regarde toujours mais je crois que cela a à voir avec les vitres dédoublées ne considérant pas les vitres comme des enfants mais plutôt comme des objets. Cela rend l'écriture d'une méthode de déplacement un peu moins élégante, le fait d'avoir à utiliser instanceof pour vérifier les fenêtres fractionnées semble erroné. Je n'ai pas considéré les fenêtres séparées comme un problème, donc pas –

+0

@BobSmith. Si vous ne l'avez pas encore regardé, voir [JavaFX 2.0 + FXML - comportement de recherche étrange] (http://stackoverflow.com/q/12324799/682495). Je pense que la réponse peut aussi être appliquée à votre cas d'utilisation. –