java-fx treetableview分组常见树项

时间:2018-01-04 10:42:50

标签: javafx javafx-8 treetableview javafx-tableview

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

current

但是,我希望有下面提到的内容,即按部门分组的员工,保持员工姓名和部门属于同一对象Employee.java的视图:

needed

1 个答案:

答案 0 :(得分:0)

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

而不是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