6

有没有办法让 TableCell 水平跨越?我想在 JavaFX 2.2 中创建一个类似于附件图像中显示的表视图

样本
(来源:fxexperience.com

顺便说一句,该图像来自此功能的示例,但它特定于 Java FX 8.0。我一直在尝试使用 rowFactory 但没有足够的文档说明如何使用它。

提前致谢。

4

1 回答 1

10

JavaFX 平台中的单元跨越是为 Java 8 实现的,然后作为功能修剪的一部分进行切割。
它可能会进入未来的版本。

跟踪单元跨越的功能请求是RT-24747 Cell spanning / merging in TableView。(这只是提供您问题中引用的图像的功能请求)。

链接的功能请求包括用于显示具有跨单元格的行和列的表格的示例代码。示例代码依赖于附加到功能请求的补丁。该补丁修改了 Java 8 的 JavaFX 控件代码。

您可以研究功能请求中的代码和补丁,以确定是否可以在用户代码中为自己实现此类技术,而无需修补 JavaFX 运行时。


我知道的唯一自定义行工厂的代码是 openjfx 中用于默认 TableView 行处理的代码 - 这并不简单。作为参考,代码位于TableRow.javaTableRowSkinBase.javaTableRowSkin.java中。

实现自己的行工厂的另一种方法是 更新 TableView 行外观,它使用 css 来修改某些单元格或整行的样式,而不是使用完全自定义的行工厂。而不是实现一个全新的行工厂,您可以通过修改 css 样式以删除跨单元格之间的行分隔符来获得您想要的效果。

使用ScenicViewSceneBuilder CSS 分析器工具可以帮助确定需要修改的 CSS 样式。

于 2013-06-04T22:25:46.477 回答