![](/img/trans.png)
[英]JTable row filtering based on values of two different columns that Have same data
[英]JTable row filtering based on values of two different columns
我想根據兩個不同列的值在 JTable 中實現行過濾:
列 1 = 1
列 2 = 5
這是基於 INDEX_FIELD = 1 條件執行行過濾的方法:
public void rowFiltering(int x) {
RowFilter<ResultsModel, Integer> IDfilter = RowFilter.numberFilter(
ComparisonType.EQUAL, x, column1);
resultsTableSorter.setRowFilter(IDfilter);
}
rowFiltering(1);
如何實現基於兩個值的行過濾? 就像是...
rowFiltering(valueColumn1, valueColumn2);
使用and
過濾器:
//rf = RowFilter.regexFilter(filterText.getText(), 0);
List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2);
filters.add(RowFilter.regexFilter(filterText.getText(), 0));
filters.add(RowFilter.regexFilter(filterText.getText(), 1));
rf = RowFilter.andFilter(filters);
上面的代碼是根據Sorting and Filtering中的示例修改的。
根據@camickr 解決方案,這是我自己的問題的代碼。
public void filterRowsResults(int x1, int x2) {
List<RowFilter<ResultsModel, Integer>> filters = new ArrayList<RowFilter<ResultsModel, Integer>>(2);
RowFilter<ResultsModel, Integer> filterC1 = RowFilter.numberFilter(ComparisonType.EQUAL, x1, 1);
RowFilter<ResultsModel, Integer> filterC2 = RowFilter.numberFilter(ComparisonType.EQUAL, x2, 2);
filters.add(filterC1);
filters.add(filterC2);
RowFilter<ResultsModel, Integer> filter = RowFilter.andFilter(filters);
resultsTableSorter.setRowFilter(filter);
}
所以我可以按如下方式調用該方法:
filterRowsResults(valueC1, valueC2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.