有一些“高级”表/电子表格SWT小部件( Nattable , Nebula Grid ),但它们都不支持真正大型的数据集。 Nattable是最接近的,但它在使用的数据类型中仍有限制,导致表中的行数变得有限。
我需要能够代表至少 2 ^ 32行,最好是2 ^ 64。
SWT Matrix打破容量拦截器,允许任何BigInteger数量的行或列。 它是封闭源,但可以免费用于私人和非商业用途。 尽管此时早期发布了alpha版本。
使用SWT.VIRTUAL
表的SWT.VIRTUAL
出了什么问题? 然后LazyContentProvider,
您可以使用LazyContentProvider,
它为您提供了一个回调,用于加载视图中所需的内容。
像这样......
TableViewertableViewer = new TableViewer(parent, SWT.VIRTUAL|SWT.BORDER|SWT.V_SCROLL);
// skipping the noise
tableViewer.setItemCount(100000);
tableViewer.setContentProvider(new LazyContentProvider());
tableViewer.setLabelProvider(new TableLabelProvider());
tableViewer.setUseHashlookup(true);
tableViewer.setInput(null);