JavaFX TableCell 与 Swing TableCellRenderer 实例

3
这是我的问题:我有一个包含50列和10000行的表格,所有数据都是字符串。在Swing中,我有一个TableCellRenderer用于呈现整个表格的字符串。
在JavaFx中,为了呈现相同的表格,我创建了50000个TableCell对象。
我错过了什么吗?这将永远不会有任何性能,分配50K的对象是不可接受的。
在JavaFx中是否有一种方法只使用一个TableCell来呈现所有单元格并具有类似于Swing的行为?
1个回答

5
从Cell类的Javadoc中得知:
由于TreeView、ListView、TableView等控件可能用于显示极大量的数据,因此无法为控件中的每个项目创建实际的Cell。我们只使用非常少的Cell来表示极大的数据集。每个Cell都被“回收”或重用。这就是我们所说的这些控件是虚拟化的意思。
基本上,TableView只会创建足以呈现屏幕上可见内容的单元格实例。如果您滚动表格,单元格将被回收。基本上,这应该给您与Swing相同的性能,以易于编程模型为代价换取一小部分内存开销。

太棒了,非常感谢。我觉得自己有点傻。我读了Cell的JavaDoc,但直到你发布这个关键点,我才意识到它!谢谢。 - P_C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接