排序 JFace Treeviewer 多列

Sort JFace Treeviewer multiple column

我希望用户能够随时对 TreeViewer 进行排序,只需单击 header 列即可。但是我不知道正确的方法。

我发现我们可以使用 ViewerComparator 来对不同的元素进行排序。但是,我不知道如何设置监听器才能正确地进行升序或降序排序。

有没有办法让 JFace 库自动有一个箭头,让用户在列排序中选择降序或升序?

此致, 沃尔多

这不是真正的自动。

您需要调用TreeColumn.addSelectionListener添加一个选择监听器来处理树列的点击headers。

然后您需要使用

TreeViewer 获取 Tree
Tree tree = viewer.getTree();

然后调用

tree.setSortColumn(treeColumn);

设置指示的主要排序列和

tree.setSortDirection(SWT.UP) // or SWT.DOWN

设置指示的排序方向。

通话

viewer.refresh();

让观众重做排序。

您需要跟踪要在比较器中排序的列。