RowFilter
RowFilter (행 필터)
모델에서 항목을 걸러내어 뷰에 표시되지 않도록 하는 필터입니다. 예를 들어 JTable에 연결된 RowFilter는 특정 문자열을 가진 열을 포함하는 행만 허용할 수 있습니다.
본문
RowFilter<M, I>는 두 개의 형식 매개변수를 가지며, M은 모델의 타입(예: PersonModel), I는 식별자의 타입(TableRowSorter에서는 Integer)입니다.
필터가 JTable과 연결되면 항목(entry)은 행에 해당하고, JTree와 연결되면 항목은 노드에 해당합니다.
항목을 뷰에 표시할지 여부를 나타내도록 하위 클래스는 include 메서드를 오버라이드해야 합니다. Entry 인자는 해당 항목의 각 열 값을 얻는 데 사용할 수 있습니다. 다음 예시는 문자열 "a"로 시작하는 값을 하나 이상 포함하는 항목만 허용하는 include 메서드입니다.
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.getStringValue(i).startsWith("a")) {
// The value starts with "a", include it
return true;
}
}
// None of the columns start with "a"; return false
return false;
}
};