我如何从 JavaFx 中的字符串列表中创建列并设置它们的名称。在 JavaFx 中是否有类似public String getColumnName(int column)
和getColumnCount
swingx 的方法?
问问题
976 次
1 回答
2
不,JavaFXTreeTableView
的数据模型的管理方式与 Swing 中数据模型的管理方式不同。
数据模型由TreeTableView
类中的两个属性表示:root
和columns
。
root
是 a TreeItem<T>
(其中T
是 的每一行表示的数据类型TreeTableView
)。它具有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);
但是,请注意,您几乎肯定需要在每列上设置一个单元格值工厂,并可能以其他方式进一步配置它。
于 2015-02-27T15:44:14.237 回答