0

这是一个普遍的问题,但我有一个特殊的场景——我从<XYZ>硬件设备通过 JNI 层获取记录,它给了我数百万/大量的记录,并在 SWT 表中处理所有这些记录就像把你的烂摊子弄乱一样,它只是崩溃。

因此,为了进行高效编程,我使用了 ScrollBar ,我将 UI 大小用于滚动条,然后填充了很多特定的数据,然后在移动滚动条时再次移动下一组数据,但我意识到它根本不是有效的方式,因为在滚动条的每一次移动中,我都通过 JNI 层调用硬件,这是非常昂贵的方式

所以现在我有一点时间考虑更新逻辑。请给我一些有效的算法。

不会有任何 Paging Strategy ,只有一个垂直 ScrollBar 直到最后一条记录

百万只是一个数字,并不是必须拥有百万条记录。我只想知道一些有效的算法来填充大量记录

4

2 回答 2

1

如果我没记错的话, a 的“问题”之一JTable是它遍历整个模型来计算列的大小。因此,即使使用滚动条,它也会在第一次绘制时遍历整个模型(而不仅仅是可视化部分)。

JXTableSwingX 允许在列 ( ) 上设置原型值,从而TableColumnExt#setPrototypeValue避免此循环。设置此值可以显着缩短表创建时间。

于 2012-07-30T07:53:16.753 回答
0

我会说您使用某种数据存储来有效地表示您的数据。取决于数据,但可以使用一组自定义对象。然后将其包装到您自己的自定义TableModel 中,让 Swing 处理其余的事情。未显示的数据根本不需要任何资源。

于 2012-07-30T06:59:05.180 回答