在javafx中使用TableView的多个过滤器

时间:2013-05-14 09:14:59

标签: java javafx-2 tableview

我在javafx2.2中创建了带过滤器的表来过滤数据。例如,我有两列,如(名字,姓氏)。 “名字”列在许多具有不同姓氏的行中具有相同的名称。所以我想添加两个过滤器来过滤名字,然后我想过滤基于名字过滤器的姓氏。

1 个答案:

答案 0 :(得分:1)

查看TableView#getSortOrder方法:

public final ObservableList<TableColumn<S,?>> getSortOrder()

Returns:
An ObservableList containing zero or more TableColumn instances.

sortOrder列表定义了TableColumn实例的排序顺序:

  • 空的sortOrder列表表示没有对TableView应用排序。
  • 如果sortOrder列表只包含一个TableColumn,则将使用此TableColumn的sortType和比较器属性对TableView进行排序(假设TableColumn.sortable为true)。
  • 如果sortOrder列表包含多个TableColumn实例,则TableView最初将根据第一个TableColumn的属性进行排序。如果认为两个元素相等,则列表中的第二个TableColumn用于确定排序。重复此过程,直到必要时考虑所有TableColumn比较器的结果。

您只需要将之前为setSortable(true)的第一列和最后一列放在两列中。