2010-04-08 4 views
2

열을 기준으로 행을 필터링하려고 시도하면 부울 값이 포함 된 c1이라고 표시됩니다. c1에 'true'가있는 행만 표시하려고합니다. 예를 들어 http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#sorting에서 조회했습니다. 이 예제에서는 regex 필터를 사용합니다. 부울 값을 사용하여 행을 필터링 할 수있는 방법이 있습니까? 부울 값 열을 기반으로 JTable의 행을 필터링하는 방법은 무엇입니까?

다음

은 (예에서 빌려온) 임 사용하여 코드
private void filter(boolean show) { 
    RowFilter<TableModel, Object> filter = null; 
    TableModel model = jTb.getModel(); 
    boolean value = (Boolean) model.getValueAt(0,1); 

    //If current expression doesn't parse, don't update. 
    try { 
     // I need to used 'value' to filter instead of filterText. 
     filter =RowFilter.regexFilter(filterText, 0); 
    } catch (java.util.regex.PatternSyntaxException e) { 
     return; 
    } 
    sorter.setRowFilter(filter); 

} 

당신을 감사합니다.

+0

자바 태그를 추가해야합니다. –

답변

4

the javadoc에서이 예제를 사용해 보셨습니까? (약간 수정).

RowFilter<Object,Object> startsWithAFilter = new RowFilter<Object,Object>() { 
    public boolean include(Entry<? extends Object, ? extends Object> entry) { 
    for (int i = entry.getValueCount() - 1; i >= 0; i--) { 
     if (entry.getValue(i).equals(true)) { 
     return true; 
     } 
    } 
    return false; 
} 
}; 
+0

예를 들어 주셔서 감사합니다. 내가 원하는 방식으로 정확하게 작동합니다. – missionE46

+0

셀 항목을 참조하는 항목을 잘못 생각했습니다. Entry가 전체 행을 참조한다는 것을 알았을 때 모든 것이 명확 해졌습니다! – missionE46

+0

다행입니다! –

관련 문제