如何使用表查看器强制在SWT表中进行排序

时间:2011-12-26 17:55:40

标签: eclipse sorting swt jface

我想第一次排序SWT表列。 我有一个带有TableViewer的表,我想在setInput方法之后或之前对programmaticaly进行排序。

列是动态生成的,最后一列是平均列。 有没有按程序排序的方法?

我只使用这行代码:

        columnPromEcr = new TableColumn(table, SWT.RIGHT);      
        columnPromEcr.setText("Prom. ECR");
        columnPromEcr.pack();
        columnPromEcr.setResizable(true);
        this.table.setSortColumn(columnPromEcr);

在setInput方法之后我调用:

// refresh table
tableViewer.refresh();
table.setRedraw(true);

我需要一个类ViewerSorter吗?

我不需要用户干预,我的数据无序,并且在创建动态列之后,我希望程序使用该信息,数字数据对表进行排序。

3 个答案:

答案 0 :(得分:1)

如果您只想在显示项目之前对项目进行排序,则不需要ViewerSorter。使用ComparatorCollections.sort()

答案 1 :(得分:0)

是的,使用ViewerSorter,它会一直保持TableViewer的顺序。

答案 2 :(得分:0)

如果你想要排序的默认行为(整数,字符串简单比较),你可以设置分拣机:

viewer.setSorter(new ViewerSorter());

并且观察者将一直被分类(例如在删除,添加数据之后)