JFace tableviewer项目删除无法刷新

时间:2017-12-25 07:28:08

标签: java eclipse swt jface

我是SWT和JFace的新手,最近,我在我的项目中使用了JFace tableviewer。我需要通过删除按钮删除项目。但是如果我删除它后刷新tableviewer它不起作用。我想知道原因。我的代码如下所示:

btnDeleteConstraint.addSelectionListener(
          new SelectionAdapter() {
          @Override
          public void widgetSelected(SelectionEvent e) {
          ISelection selection = tableViewer.getSelection();
          logger.debug("datatype selected");
          if (selection != null || selection instanceof 
          IStructuredSelection) {
            IStructuredSelection sel = (IStructuredSelection) selection;
            Iterator iterator = sel.iterator();
            while(iterator.hasNext()) {
                Object obj = iterator.next();
                tableViewer.remove(obj);
            }

            tableViewer.refresh();
        }

    }
});

我使用另一个名为update()的方法来设置输入并最后刷新表:

public void update()
{
   tableViewer.setInput(DataTypeFactory.
   getInstance().getCastList(wizard.getSourceInfo().getDBType()));
   tableViewer.refresh();
 }

1 个答案:

答案 0 :(得分:0)

当您致电refresh时,您的“内容提供商”会更新该表格。 - 所以当您删除内容时,必须更新内容提供商在其getElements方法中返回的数据。