java-fx treetableview 分组公共树项

java-fx treetableview grouping common tree items

我有一个树表视图,用于显示以组织为根项的员工列表。 现在我想根据他们工作的部门对树项进行分组。 例如: 目前我显示如下:

current

但是我想要下面提到的东西,即按部门分组的员工,以确保员工姓名和部门是同一对象的一部分 Employee.java:

needed

这是您应该使用的解决方案:

而不是 Object 使用您的模型。

    TreeTableView<Object> treeTableView = new TreeTableView<>();

    TreeItem<Object> root = new TreeItem<>();
    // if you need more roots you can disable the root and use the first level children as roots otherwise ignore this line.
    treeTableView.setShowRoot(false);
    treeTableView.setRoot(root);

    // first level children
    TreeItem<Object> firstLevelChild1 = new TreeItem<>();
    TreeItem<Object> firstLevelChild2 = new TreeItem<>();

    root.getChildren().add(firstLevelChild1);
    root.getChildren().add(firstLevelChild2);

    // second level children

    TreeItem<Object> secondLevelChild1 = new TreeItem<>();
    TreeItem<Object> secondLevelChild2 = new TreeItem<>();

    firstLevelChild1.getChildren().add(secondLevelChild1);
    firstLevelChild2.getChildren().add(secondLevelChild2);

    // third level children

    TreeItem<Object> thirdLevelChild1 = new TreeItem<>();
    TreeItem<Object> thirdLevelChild2 = new TreeItem<>();

    secondLevelChild2.getChildren().add(thirdLevelChild1);
    secondLevelChild2.getChildren().add(thirdLevelChild2);

    // .... and so on you can define as many levels you want