如何在JavaFx TreeTableView中创建列和集名称

时间:2015-02-26 23:22:34

标签: javafx treetableview

如何创建列并从JavaFx中的String列表中设置其名称。 JavaFx中的swingx中是否有类似public String getColumnName(int column)getColumnCount的方法?

1 个答案:

答案 0 :(得分:2)

不,JavaFX TreeTableView的数据模型的管理方式与Swing中管理数据模型的方式不同。

数据模型由TreeTableView类中的两个属性表示:rootcolumns

rootTreeItem<T>(其中TTreeTableView的每一行所代表的数据类型。它具有getChildren()方法,用于树结构,扩展状态等中的子元素。

getColumns()会返回一个ObservableList<TreeTableColumn<T,?>>,它实际上是一个列列表。因此,列数由此列表的大小决定。 TreeTableColumn具有text属性,该属性封装了列的标题。因此,列名称由text返回的列表元素的getColumns()属性表示。

所以,为了回答你的问题,给出

TreeTableView<T> treeTable ;

(其中T被某些实际类型替换)和

List<String> columnNames ;

您可以使用

填充树表的列
for (String name : columnNames) {
    TreeTableColumn<T,?> column = new TreeTableColumn<>(name);
    treeTable.getColumns().add(column);
}

或者如果您更喜欢Java 8风格:

columnNames.stream().map(TreeTableColumn::new)
    .forEach(treeTable.getColumns()::add);

但是,请注意,您几乎肯定需要在每列上设置单元格值工厂,并可能以其他方式进一步配置它。