如何使用 TornadoFx 创建 nested/split 列 header?

How can I create a nested/split column header using TornadoFx?

我正在创建一个包含 4 个主要 header 的表格视图,每个 header 都有一个 "costs" 和 "units" 属性。

在普通 JavaFx 中,您可以将列添加到列中并进行拆分:

TableColumn emailCol = new TableColumn("Email");
TableColumn firstEmailCol = new TableColumn("Primary");
TableColumn secondEmailCol = new TableColumn("Secondary");
emailCol.getColumns().addAll(firstEmailCol, secondEmailCol);

是否可以在 tornadoFX 中执行此操作?

您使用 nestedColumn 生成器在 TornadoFX 中创建嵌套列:

nestedColumn("header1") {
    column("costs", Item::costsProperty)
    column("units", Item::unitsProperty)
}

除了创建列之外,此代码还为每个列创建了一个 valueFactory:)

另一个需要注意的非常重要的事情是,您可以在 TornadoFX 中做任何您在 JavaFX 中可以做的事情。 TornadoFX 从不隐藏底层的 JavaFX API,所以即使我们没有 nestedColumn 构建器,您也可以使用上面的确切代码,只需使用 Kotlin 语法,它就可以正常工作。

如果您遇到不知道如何在 TornadoFX 中执行某些操作的情况,您始终可以使用传统的 JavaFX 方法来实现相同的目的:)