在 tableviewer 中创建 Commbobox 时出现 AssertionFailedException

AssertionFailedException while creating Commbobox in tableviewer

我正在尝试在 Eclipse 的 table 查看器中制作一个组合框 SWT.pointing 我在右边 direction.I 认为我到目前为止一切正常,问题是组合框table 中没有显示,我得到了这个错误:

错误: 代码块是:

    public void createPartControl(Composite parent) {
    System.out.println("createPartControl call");

    // For Testing

    Composite tableComposite = new Composite(parent, SWT.NONE);
    tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);
    tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
            true));

    tableViewer = new TableViewer(tableComposite, SWT.MULTI | SWT.H_SCROLL
            | SWT.V_SCROLL);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());
    // TODO viewer.setLabelProvider(new ViewLabelProvider());
    table = tableViewer.getTable();
    // Table table = tableViewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    String[] titles = { "Threat Name", "Category Name", "Status",
            "Priority", "Description", "Justification" };

    for (int loopIndex = 0; loopIndex < titles.length; loopIndex++) {
        tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
        TableColumn tblclmn = tableViewerColumn.getColumn();
        tableColumnLayout.setColumnData(tblclmn, new ColumnPixelData(200,
                true, true));
        tblclmn.setText(titles[loopIndex]);
    }

}

   private void fillRows(String shortdesc, String categ, String descp) {
    System.out.println("fillRows call from above method.");     
    TableColumn status_Name_Col = tableViewer.getTable().getColumn(2);
    System.out.println("**************** status_Name_Col ************ "+ status_Name_Col);      
      tableViewerColumn.setLabelProvider(new ColumnLabelProvider()
        {
            @Override
            public String getText(Object element)
            {
                Dummy p = (Dummy) element;
                return p.getValue();
            }
        });
      tableViewer.addSelectionChangedListener(new ISelectionChangedListener()
        {
            @Override
            public void selectionChanged(SelectionChangedEvent selectionChangedEvent)
            {
                StructuredSelection selection = (StructuredSelection) selectionChangedEvent.getSelection();
                System.out.println(((Dummy) selection.getFirstElement()).getValue());
            }
        });


      List<Dummy> elements = new ArrayList<>();
      for (int i = 0; i < Connection.Number_Of_Connection; i++) {
            elements.add(new Dummy("First option"));
        }
      tableViewer.setInput(elements);
      tableColumnLayout.setColumnData(status_Name_Col, new ColumnWeightData(1, true));
      tableViewerColumn.setEditingSupport(new FirstValueEditingSupport(tableViewer));


}

断言消息非常清楚 - 您必须为 table 中的每一列设置标签提供程序。

您没有告诉我们您在哪里调用 fillRows 但是在该方法中设置列标签提供程序看起来是错误的 - 在创建列的循环中设置标签提供程序。