这是我的问题,我有一个有50列和10000行的表,所有的数据都是字符串。在Swing中,当我有一个TableCellRenderer来呈现整个表的字符串时。
在JavaFx中,为了呈现相同的表,我创建了50000个TableCell对象。
我是不是漏掉了什么?这将永远不会有任何性能,分配50K的对象是不可接受的。
在JavaFx中是否有一种方法只使用一个TableCell来呈现我的所有单元格,并且有类似的行为来摆动?
发布于 2013-08-30 18:13:58
来自用于Cell类的Javadoc:
由于TreeView、ListView、TableView和其他此类控件可能用于显示难以置信的大量数据,因此为控件中的每个项创建实际的单元格是不可行的。我们只使用极少数的单元格来表示非常大的数据集。每个细胞被“回收”,或者重复使用。当我们说这些控件是虚拟化的时,这就是我们的意思。
基本上,TableView只会创建尽可能多的单元格实例,以使内容在屏幕上可见。如果你滚动表格,细胞就会被回收。基本上,这应该给您提供与Swing相同的性能,用较小的内存开销来换取更简单的编程模型。
https://stackoverflow.com/questions/18538704
复制相似问题