Eclipse 使用tableviewer swt/jface显示大量行/列有任何限制吗
在我自己的eclipse产品中,我试图加载更多的行以显示在表中。我正在使用jface tableviewer。检索数据时,我发现swt处理程序出错。使用jface tableviewer显示行数是否有任何限制 我使用的配置有Eclipse4.14、Windows10和OpenJDK11 下面是我如何继续操作的一些代码 我们使用excel以表格格式加载数据 在excel中,我们有225列和15行。我正在附上Eclipse 使用tableviewer swt/jface显示大量行/列有任何限制吗,eclipse,swt,jface,Eclipse,Swt,Jface,在我自己的eclipse产品中,我试图加载更多的行以显示在表中。我正在使用jface tableviewer。检索数据时,我发现swt处理程序出错。使用jface tableviewer显示行数是否有任何限制 我使用的配置有Eclipse4.14、Windows10和OpenJDK11 下面是我如何继续操作的一些代码 我们使用excel以表格格式加载数据 在excel中,我们有225列和15行。我正在附上 对应的excel 我们正在导入excel表格数据,其中225列为 具有7列标题的表格格式,
对应的excel 我们正在导入excel表格数据,其中225列为
具有7列标题的表格格式,如下所示
TableViewerColumn upDownColumn = new TableViewerColumn(viewer, SWT.NONE);
upDownColumn.getColumn().setText(UP_DOWN);
upDownColumn.getColumn().setWidth(130);
upDownColumn.getColumn().setResizable(false);
为此,我们使用jface tableviewer
TableViewer viewer = new TableViewer(parent, SWT.HIDE_SELECTION);
table = viewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(false);
table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
String[] columnNames = new String[8];
GridLayout tableLayout = new GridLayout();
tableLayout.marginTop = 30;
tableLayout.verticalSpacing = 5;
table.setLayout(tableLayout);
对于列标题,我们正在为每个列创建,如下所示
TableViewerColumn upDownColumn = new TableViewerColumn(viewer, SWT.NONE);
upDownColumn.getColumn().setText(UP_DOWN);
upDownColumn.getColumn().setWidth(130);
upDownColumn.getColumn().setResizable(false);
要为每个列设置标签提供程序,我们将创建基于下表的渲染器
CustomLabelControlRenderer renderer = PropertySheetUtil.
createRenderer(CustomLabelControlRenderer.class, table,setting,
null);
columnNames[0] = UP_DOWN;
与上面一样,我们正在创建7个列标题
创建列标题后,我们将输入设置为
viewer.setColumnProperties(columnNames);
viewer.setContentProvider(ArrayContentProvider.getInstance());
viewer.setUseHashlookup(true);
viewer.setInput(fieldList);
table.getVerticalBar().setVisible(true)
我的表格截图如下图所示
我们在控制台中得到错误,如下所示
!条目org.eclipse.ui 4 0 2020-01-23 12:39:47.303
!消息未处理的事件循环异常
!堆栈0
org.eclipse.swt.SWTError:不再有句柄
位于org.eclipse.swt.swt.error(swt.java:4737)
位于org.eclipse.swt.swt.error(swt.java:4626)
位于org.eclipse.swt.swt.error(swt.java:4597)
位于org.eclipse.swt.widgets.Widget.error(Widget.java:452)
位于org.eclipse.swt.widgets.Control.createHandle(Control.java:721)
位于org.eclipse.swt.widgets.Composite.createHandle(Composite.java:295)
位于org.eclipse.swt.widgets.Control.createWidget(Control.java:761)
位于org.eclipse.swt.widgets.Scrollable.createWidget(Scrollable.java:154)
位于org.eclipse.swt.widgets.Control.(Control.java:115)
位于org.eclipse.swt.widgets.Scrollable.(Scrollable.java:85)
位于org.eclipse.swt.widgets.Composite(Composite.java:99)
位于com.spacetimeinsight.sistudio.datasource.renderers.DataSourceFieldsRenderer$6.update(DataSourceFieldsRenderer.java:353)
位于org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:144)
位于org.eclipse.jface.viewers.AbstractTableViewer.doUpdateItem(AbstractTableViewer.java:396)
位于org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:422)
位于org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
位于org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
位于org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
位于org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2097)
位于org.eclipse.jface.viewers.AbstractTableViewer.createItem(AbstractTableViewer.java:288)
位于org.eclipse.jface.viewers.AbstractTableViewer.internalRefreshAll(AbstractTableViewer.java:726)
位于org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:618)
位于org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:610)
org.eclipse.jface.viewers.AbstractTableViewer.lambda$0(AbstractTableViewer.java:572)
位于org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1393)
位于org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1354)
位于org.eclipse.jface.viewers.AbstractTableViewer.inputChanged(AbstractTableViewer.java:572)
位于org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:282)
位于org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1627)
位于com.spacetimeinsight.sistudio.datasource.renderers.DataSourceFieldsRenderer.createCustomSwtControl(DataSourceFieldsRenderer.java:536)
位于com.spacetimeinsight.sistudio.core.propertysheet.AbstractBaseControlRenderer.createSWTControl(AbstractBaseControlRenderer.java:449)
位于com.spacetimeinsight.sistudio.core.propertysheet.AbstractBaseControlRenderer.initControl(AbstractBaseControlRenderer.java:270)
位于com.spacetimeinsight.sistudio.ui.datasource.DataSourceComponentSection.createTableImportDataSource(DataSourceComponentSection.java:490)
在com.spacetimeinsight.sistudio.ui.datasource.DataSourceComponentSection.shouldRadioGroupCreated上(DataSourceComponentSection.java:215)
位于com.spacetimeinsight.sistudio.ui.datasource.DataSourceComponentSection.createControls(DataSourceComponentSection.java:149)
位于com.spacetimeinsight.sistudio.datasource.AbstractDataSourceType.createControls(AbstractDataSourceType.java:292)
位于com.spacetimeinsight.sistudio.ui.datasource.DataSourceFieldPropertySection.updateControl(DataSourceFieldPropertySection.java:48)
位于com.spacetimeinsight.sistudio.core.propertysheet.CustomPropertySection.setInput(CustomPropertySection.java:137)
位于org.eclipse.ui.views.properties.tabbed.TabContents$5.run(TabContents.java:184)
位于org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
位于org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
位于org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
位于org.eclipse.ui.views.properties.tabbed.TabContents.setInput(TabContents.java:187)
在com.spacetimeinsight.sistudio.ui.common.tabbed.CustomTabbedPropertySheetPage$SelectionChangedListener.selectionChanged(CustomTabbedPropertySheetPage.java:206)
位于org.eclipse.jface.viewers.Viewer$1.run(Viewer.java:151)
位于org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
位于org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
位于org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
在org.eclipse.jface.viewers.Viewer.fireSelectionChanged上(Viewer.java:148)
位于org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:2118)
位于org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:1170)
在org.eclipse.jface.viewers.St