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

标签 java javafx java-8 treeview tableview

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

想象一下这样的账单或 Material

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

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

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

最佳答案

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

该组件从构建在 TreeItem 上的树结构模型中获取数据类。

有了它,可以为您的 Material list 的根对象构建一个根 TreeItem,并为您想要的每个组( Material 名称? ).然后,这些 grouping TreeItem 对象中的每一个都应该包含每个实际 material 对应的 TreeItem 子对象作为子对象在正在显示的 Material list 中。

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

希望这对您有所帮助。

关于java - 我可以在 Javafx TableView 中对行进行分组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56267183/

相关文章:

java - apache Tomcat 中的奇怪输出?

java - Vbox 没有填满网格 Pane 中的所有可用空间

JavaFX 和 Java 互操作性

Java 8 : Lambda expression contains more than one statement/logic

java - 如何将 IStatus 对象的 java 8 lambda 表达式传递给 Logger api(自定义记录器)

java - 为什么我无法获取 javac -version?

java - Libgdx 在屏幕中使用 InputMultiplexer 覆盖 keyDown

java - isArmed、isPressed 和 isSelected 之间的区别

java - 分段阅读_第 403 章

java - 如何在 setOnAction 外部使用定义在其内部的变量?