2013-07-03 4 views
4

의 값에 기초하여 필터링 INDEX_FIELD = 1에 기초하여 행 필터링을 수행하는 방법은 조건 :JTable의 행은 두 개의 다른 열 I 두 개의 다른 열 값에 기초하여, JTable로 행 필터링을 구현하려는

public void rowFiltering(int x) { 
    RowFilter<ResultsModel, Integer> IDfilter = RowFilter.numberFilter(
      ComparisonType.EQUAL, x, column1); 
    resultsTableSorter.setRowFilter(IDfilter); 
} 

rowFiltering(1); 

어떻게 두 개의 값에 기초하여 행 필터링을 구현할 수 있는가?

//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에서 발견 된 예에서 수정 : 뭔가처럼 ...

rowFiltering(valueColumn1, valueColumn2); 

답변

8

and 필터를 사용합니다.

2

@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);