这是一般性问题,但我有一个特别的情况─
我从<XYZ>
硬件设备通过JNI层获取记录,它给我数百万/大量的记录并在SWT中处理所有这些记录就像在墙上弄乱你的烂摊子,它只是崩溃。
因此,为了高效编程,我使用了ScrollBar,我使用了UI 大小wrt滚动条,然后我填充的特定数据, 然后再次移动滚动条,再次下一组数据,但我 意识到它根本不是一种有效的方式,因为它的每一个动作 滚动条,我通过JNI层调用硬件,就是这样 非常昂贵的方式
所以现在我有一点时间考虑更新逻辑。 请给我一些有效的算法。
不会有任何分页策略,只有一个垂直的ScrollBar,直到最后一条记录
百万只是一个数字,它不是强制要有百万条记录。我只是想知道一些有效的算法来填充大量的记录
答案 0 :(得分:1)
如果我没记错的话,JTable
的一个'问题'是它遍及整个模型来计算列的大小。因此,即使使用滚动条,它也会在第一次绘制时循环遍历整个模型(而不仅仅是可视化部分)。
SwingX的JXTable
允许在列(TableColumnExt#setPrototypeValue
)上设置原型值,从而避免此循环。设置此值可以显着改善表创建时间。
答案 1 :(得分:0)
我会说你使用某种数据存储来有效地表示你的数据。取决于数据,但可以使用一组自定义对象。然后将它包装到您自己的自定义TableModel中,让Swing处理剩下的事情。未显示的数据根本不需要任何资源。