有没有办法让TableCell水平跨度?我想在JavaFX 2.2中创建一个类似于附加图像中显示的表视图
sample http://cache.fxexperience.com/wp-content/uploads/2012/10/Picture2.png
顺便说一句,图像来自这个功能的样本,但它特定于Java FX 8.0。我一直在尝试使用rowFactory,但没有足够的文档来说明如何使用它。
提前致谢。
答案 0 :(得分:10)
JavaFX平台中的单元跨越是为Java 8实现的,然后作为特征修剪的一部分进行剪切 它可能会在将来发布。
跟踪单元格跨越的功能请求是RT-24747 Cell spanning / merging in TableView。 (这只是提供问题中引用的图像的功能请求。)
链接的功能请求包括用于显示包含行和列跨越单元格的表的示例代码。示例代码依赖于附加到功能请求的补丁。该补丁修改了Java 8的JavaFX控件代码。
您可以研究功能请求中的代码和补丁,以确定您是否可以在用户代码中自行实现此类技术,而无需修补JavaFX运行时。
我知道的唯一自定义行工厂的代码是openjfx中用于默认TableView行处理的代码 - 这并不简单。作为参考,代码位于TableRow.java,TableRowSkinBase.java和TableRowSkin.java。
实现自己的行工厂的另一种方法是Updating TableView row appearance,它使用css来修改某些单元格或整行的样式,而不是使用完全自定义的行工厂。您可以通过修改css样式来删除跨越单元格之间的行分隔符,而不是实现一个全新的行工厂。
使用ScenicView或SceneBuilder CSS Analyzer工具可能有助于确定要修改的css样式。