2017-05-24 6 views
0

J'essaie d'implémenter un TreeView dans mon application JavaFX. Mais malheureusement, aucun élément n'est montré, mais je ne trouve pas de problème. Je cherche un exemple et je l'ai fait comme eux.javaFX - Treeview n'affiche aucun élément dans SplitPane

J'ai placé un contrôle TreeView dans mon fichier FXML dans SceneBuilder et j'ai sélectionné la classe ControllerClass qui a été générée et j'ai sélectionné le champ Treeview de cette classe comme ID pour le contrôle TreeView dans SceneBuilder.

J'ai vérifié cette question où l'erreur assignait une nouvelle instance de TreeView mais ce n'est pas mon problème puisque je suis en train de définir la racine directement.

C'est mon code contrôleur:

public class FXMLDocumentController implements Initializable { 
    @FXML 
    private Label label; 
    @FXML 
    private TreeView<String> treeView; 
    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     // TODO 
     TreeItem<String> root = new TreeItem<>("root"); 
     for (int i = 0; i < 10; i++) { 
      TreeItem<String> child = new TreeItem<>("Children " + i); 
      root.getChildren().add(child); 
     } 
     root.setExpanded(true); 
     treeView.setRoot(root);// = new TreeView<String> (rootItem); 
     treeView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); 
    } 
} 

Mon code FXML:

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1"> 
    <children> 
     <SplitPane dividerPositions="0.29797979797979796" layoutX="134.0" layoutY="154.0" prefHeight="600.0" prefWidth="800.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> 
     <items> 
      <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0"> 
       <children> 
        <TreeView fx:id="treeView" layoutX="39.0" layoutY="61.0" prefHeight="598.0" prefWidth="235.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" /> 
       </children> 
      </AnchorPane> 
      <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0" /> 
     </items> 
     </SplitPane> 
    </children> 
</AnchorPane> 

Répondre

0

Vous n'avez pas spécifié la classe de votre contrôleur dans FXML. Ajouter

fx:controller="my.package.FXMLDocumentController" 

à l'élément racine dans le fichier FXML (remplacez my.package avec le paquet réel qui est FXMLDocumentController dans).

+0

ouais ce n'est toujours pas montré ... –