Java:
public class ViewList {
CheckBoxTreeItem rootItem = new CheckBoxTreeItem("A");
@FXML TreeView treeview = new TreeView(rootItem);
@FXML
public void ViewListFill(){
rootItem.setExpanded(true);
System.out.println("hhhhhh");
treeview.setCellFactory(CheckBoxTreeCell.forTreeView());
CheckBoxTreeItem checkBoxTreeItem = new CheckBoxTreeItem("Völkerwanderunghhhhhhhhhhhhhhhhhhhhh");
rootItem.getChildren().add(checkBoxTreeItem);
checkBoxTreeItem = new CheckBoxTreeItem("b");
rootItem.getChildren().add(checkBoxTreeItem);
treeview.setRoot(rootItem);
}
}
Java:
@Override
public void start(Stage stage) throws Exception {
Pane root = (Pane) FXMLLoader.load(getClass().getResource("mm.fxml"));
ViewList view = new ViewList();
view.viewListFill();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
Den TreeView habe ich im SceneBuilder eingefügt. Wenn ich die Methode viewListFill aufrufe, zeigt er mir zwar den Syso-print an aber die TreeItems und deren Strings werden nicht in der TreeView eingefügt. Es wirkt so als würden zwei verschiedene Instanzen dieser Klassen erzeugt, einmal aus dem FXML und einmal so im code.
Ein versuch über doe Controller Klasse per Event(Button click) das zu bewerkstelligen funktioinierte einwandfrei.
Zuletzt bearbeitet von einem Moderator: