JavaFX TableCell与Swing TableCellRenderer实例

P_C*_*P_C 3 javafx javafx-2

这是我的问题,我有一个包含50列和10000行的表,所有数据都是字符串.在Swing中,我有一个TableCellRenderer,它呈现整个表的字符串.

在JavaFx中渲染相同的表我创建了50000个TableCell对象.

我在这里遗失了什么吗?这将永远不会有任何性能,分配50K的对象是不可接受的.

JavaFx中是否有一种方法只使用一个TableCell来呈现我的所有单元格并且具有与Swing类似的行为?

sar*_*can 5

来自Cell类的Javadoc:

由于TreeView,ListView,TableView和其他此类控件可能会用于显示难以置信的大量数据,因此无法为控件中的每个项创建实际的Cell.我们仅使用非常少的Cell来表示极大的数据集.每个Cell都被"回收"或重复使用.当我们说这些控件是虚拟化时,这就是我们的意思.

基本上,TableView只会创建尽可能多的单元实例,以便在屏幕上呈现内容.如果您滚动表格,细胞将被回收.基本上,这应该给你与Swing相同的性能,为更简单的编程模型交换小内存开销.