我可以在 Javafx TableView 中对行进行分组吗?

Meg*_*ons 2 java treeview javafx tableview java-8

我想制作一个 javafx TableView,其中的行可能(或可能没有)“相关”行。基本上,我认为它可能是表格视图的表格视图,但是(a)我不确定这是否有效,(b)我的直觉告诉我有一种更简单的方法。

想象一下账单或材料,例如

item    material    quantity    name
1       wood        1           base
2       wood        4           drawer
        wood        4           drawer sides
        wood        1           drawer base
        hardware    1           pull
        hardware    8           nails
3       aluminum    4           leg
        plastic     1           foot
        hardware    1           screws
Run Code Online (Sandbox Code Playgroud)

现在,它按名称(底座、抽屉、腿)排序。如果我按材料排序,我希望项目为 3, 1, 2(或 3, 2, 1):铝,木头,木头。我需要“子项目”与编号项目保留在一起。

我可以制作“复杂的行”吗?(我什至不知道我该怎么称呼它!)或者我是否需要一种自定义排序来将组保持在一起?

Mar*_* R. 5

您可能想查看一下TreeTableView。有了它,您可以按您喜欢的任何标准进行排序,同时按任何其他标准(例如按name)对记录进行分组

该组件从基于该类构建的树结构模型获取数据TreeItem

TreeItem有了它,可以为物料清单的根对象构建根,并TreeItem为您想要的每个组(材料名称?)作为子对象。然后,这些分组 TreeItem对象中的每一个都应该包含所显示的物料清单中的TreeItem每个实际对象的相应子对象作为子对象。material

有多个很好的教程详细介绍了这方面的技术方面:

希望这可以帮助。