Summary

JTableの行フィルタリングをRowFilter.ComparisonTypeで指定した不等号、等号比較で実行するよう設定します。

Source Code Examples

private void setFilter(TableRowSorter<?> sorter, RowFilter.ComparisonType type) {
  int num = model.getNumber().intValue();
  sorter.setRowFilter(RowFilter.numberFilter(type, num));
}
View in GitHub: Java, Kotlin

Explanation

  • RowFilter.ComparisonType.AFTER
    • たとえば、RowFilter.numberFilter(RowFilter.ComparisonType.AFTER, 10)で作成したRowFilterJTableの行の数値が10 < numの行を表示し、10 >= numの行はフィルタリングして非表示になる
  • RowFilter.ComparisonType.BEFORE
    • たとえば、RowFilter.numberFilter(RowFilter.ComparisonType.BEFORE, 10)で作成したRowFilterJTableの行の数値が10 > numの行を表示し、10 <= numの行はフィルタリングして非表示になる
  • RowFilter.ComparisonType.EQUAL
    • JTableの行の数値が指定した数値と等しい場合その行を表示するフィルタになる
  • RowFilter.ComparisonType.NOT_EQUAL
    • JTableの行の数値が指定した数値と等しくない場合その行を表示するフィルタになる

if (type == ComparisonType.AFTER || type == ComparisonType.BEFORE) {
  RowFilter<TableModel, Integer> f1 = RowFilter.numberFilter(type, num);
  ComparisonType eq = ComparisonType.EQUAL;
  RowFilter<TableModel, Integer> f2 = RowFilter.numberFilter(eq, num);
  sorter.setRowFilter(RowFilter.orFilter(Arrays.asList(f1, f2)));
}

Reference

Comment