|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 차의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.swing.RowFilter<M, I>
M
- 모델의 형태. PersonModel
등I
- 식별자의 형태.
TableRowSorter
의 사용시는 Integer
public abstract class RowFilter<M, I>
RowFilter
는, 엔트리를 모델로부터 제거해, 뷰에 표시되지 않게 하기 위해서 사용합니다. 예를 들어,JTable
에 관련지을 수 있었던 RowFilter
에서는, 특정의 캐릭터 라인을 가지는 열이 포함되어 있는 행 밖에 허가되지 않는 것이 있습니다. 엔트리의 의미는, 컴퍼넌트의 형태에 따라서 다릅니다. 예를 들어, 필터를 JTable
에 관련지을 수 있고 있는 경우, 엔트리는 행을 의미합니다. 필터를 JTree
에 관련지을 수 있고 있는 경우, 엔트리는 노드를 의미합니다.
서브 클래스는,include
메소드를 오버라이드(override) 해, 엔트리를 뷰에 표시할지 어떨지를 지정할 필요가 있습니다. 엔트리의 각 열의 값을 가져오려면 ,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 so that this // entry is not shown return false; } };
RowFilter
에는, 특정의 모델의 RowFilter
의 작성을 허가하는 2 개의 가파라미터형이 준비되어 있습니다. 예를 들어, 다음의 코드는,Person
형의 객체를 랩 하는 특정의 모델을 나타내고 있습니다. 20 세 이상의 Person
만이 표시됩니다.
RowFilter<PersonModel, Integer> ageFilter = new RowFilter<PersonModel, Integer>() { public boolean include(Entry<? extends PersonModel, ? extends Integer> entry) { PersonModel personModel = entry.getModel(); Person person = personModel.getPerson(entry.getIdentifier()); if (person.getAge() > 20) { // Returning true indicates this row should be shown. return true; } // Age is <= 20, don't show it. return false; } }; PersonModel model = createPersonModel(); TableRowSorter<PersonModel> sorter = new TableRowSorter<PersonModel>(model); sorter.setRowFilter(ageFilter);
TableRowSorter
상자의 클래스의 개요 | |
---|---|
static class |
RowFilter.ComparisonType
일부의 디폴트의 RowFilter 로 지원되는, 값비교에 사용될 가능성이 있는 값의 열거입니다. |
static class |
RowFilter.Entry <M ,I >
Entry 객체가 RowFilter 의 인스턴스에게 건네지면(자), 필터는 엔트리의 데이터값를 취득해, 엔트리를 표시할지 어떨지를 판단할 수가 있습니다. |
생성자 의 개요 | |
---|---|
RowFilter ()
|
메소드의 개요 | ||
---|---|---|
static
|
andFilter (Iterable <? extends RowFilter <? super M,? super I>> filters)
지정된 모든 필터가 엔트리를 포함하는 경우, 엔트리를 포함하는 RowFilter 를 돌려줍니다. |
|
static
|
dateFilter (RowFilter.ComparisonType type,
Date date,
int... indices)
지정된 기준을 채우는 Date 치를 적어도 1 개(살) 이상 가지는 엔트리를 포함하는 RowFilter 를 돌려줍니다. |
|
abstract boolean |
include (RowFilter.Entry <? extends M ,? extends I > entry)
지정된 엔트리를 표시하는 경우는 true, 표시하지 않는 경우는 false 를 돌려줍니다. |
|
static
|
notFilter (RowFilter <M, I> filter)
지정된 필터가 엔트리를 포함하지 않는 경우, 엔트리를 포함하는 RowFilter 를 돌려줍니다. |
|
static
|
numberFilter (RowFilter.ComparisonType type,
Number number,
int... indices)
지정된 기준을 채우는 Number 치를 적어도 1 개(살) 이상 가지는 엔트리를 포함하는 RowFilter 를 돌려줍니다. |
|
static
|
orFilter (Iterable <? extends RowFilter <? super M,? super I>> filters)
지정된 필터안에 엔트리를 포함하는 것이 있었을 경우에, 엔트리를 포함하는 RowFilter 를 돌려줍니다. |
|
static
|
regexFilter (String regex,
int... indices)
정규 표현을 사용해 포함하는 엔트리를 특정하는 RowFilter 를 돌려줍니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
생성자 의 상세 |
---|
public RowFilter()
메소드의 상세 |
---|
public static <M, I> RowFilter <M, I> regexFilter(String regex, int... indices)
RowFilter
를 돌려줍니다. 일치하는 값을 적어도 1 개(살) 이상 가지는 엔트리를 포함할 수 있습니다. 예를 들어 다음의 코드는, 「a」로 시작되는 값을 적어도 1 개(살) 이상 가지는 엔트리를 포함하는 RowFilter
를 작성합니다.
RowFilter.regexFilter("^a");
반환되는 필터는,Matcher.find()
를 사용해 혼잡 내용을 확인합니다. 완전 일치의 유무를 확인하려면 , 캐릭터 라인 「^」과「$」을 사용해, 캐릭터 라인의 선두와 말미의 문자를 비교합니다. 예를 들어 「^foo$」(이)라고 지정했을 경우, 「foo」라고 완전하게 일치하는 캐릭터 라인이 있는 행만이 포함할 수 있습니다. 「food」는 일치라고는 보여지지 않습니다. 지원되고 있는 정규 표현의 구문의 자세한 것은,Pattern
를 참조해 주세요.
regex
- 필터를 적용하는 정규 표현indices
- 조사하는 값의 인덱스. 그렇지 않은 경우는, 지정된 모든 값이
평가된다
RowFilter
NullPointerException
- regex
가
null 의 경우
IllegalArgumentException
- indices
에
0 보다 작은 값이 포함되는 경우
PatternSyntaxException
- regex
가
유효한 정규 표현이 아닌 경우Pattern
public static <M, I> RowFilter <M, I> dateFilter(RowFilter.ComparisonType type, Date date, int... indices)
Date
치를 적어도 1 개(살) 이상 가지는 엔트리를 포함하는 RowFilter
를 돌려줍니다. 예를 들어 다음의 RowFilter
는, 현재의 일자보다 나머지의 1 개 이상의 일자의 값을 가지는 엔트리를 포함합니다.
RowFilter.dateFilter(ComparisonType.AFTER, new Date());
type
- 실행하는 비교의 형태date
- 비교 대상의 일자indices
- 조사하는 값의 인덱스. 그렇지 않은 경우는, 지정된 모든 값이
평가된다
RowFilter
NullPointerException
- date
가
null 의 경우
IllegalArgumentException
- indices
에
0 보다 작은 값이 포함되는 경우, 또는 type
가
null 의 경우
Calendar
,
Date
public static <M, I> RowFilter <M, I> numberFilter(RowFilter.ComparisonType type, Number number, int... indices)
Number
치를 적어도 1 개(살) 이상 가지는 엔트리를 포함하는 RowFilter
를 돌려줍니다. 예를 들어 다음의 필터는, 10 으로 동일한 값을 적어도 1 개(살) 이상 가지는 엔트리를 포함합니다.
RowFilter.numberFilter(ComparisonType.EQUAL, 10);
type
- 실행하는 비교의 형태indices
- 조사하는 값의 인덱스. 그렇지 않은 경우는, 지정된 모든 값이
평가된다
RowFilter
IllegalArgumentException
- indices
에
0 보다 작은 값이 포함되는 경우,type
가 null
의 경우,
또는 number
가 null
의 경우public static <M, I> RowFilter <M, I> orFilter(Iterable <? extends RowFilter <? super M,? super I>> filters)
RowFilter
를 돌려줍니다.
다음의 샘플 코드는, 캐릭터 라인 「foo」또는 「bar」가 있는 엔트리를 포함하는 RowFilter
를 작성합니다.
List<RowFilter<Object, Object>> filters = new ArrayList<RowFilter<Object, Object>>(2); filters.add(RowFilter.regexFilter("foo")); filters.add(RowFilter.regexFilter("bar")); RowFilter<Object, Object> fooBarFilter = RowFilter.orFilter(filters);
filters
- 판정하는 대상이 되는 RowFilter
RowFilter
IllegalArgumentException
- null
의 필터가
존재하는 경우
NullPointerException
- filters
가 null 의 경우Arrays.asList(T...)
public static <M, I> RowFilter <M, I> andFilter(Iterable <? extends RowFilter <? super M,? super I>> filters)
RowFilter
를 돌려줍니다.
다음의 샘플 코드는, 캐릭터 라인 「foo」와「bar」가 있는 엔트리를 포함하는 RowFilter
를 작성합니다.
List<RowFilter<Object, Object>> filters = new ArrayList<RowFilter<Object, Object>>(2); filters.add(RowFilter.regexFilter("foo")); filters.add(RowFilter.regexFilter("bar")); RowFilter<Object, Object> fooBarFilter = RowFilter.andFilter(filters);
filters
- 판정하는 대상이 되는 RowFilter
RowFilter
IllegalArgumentException
- null
의 필터가
존재하는 경우
NullPointerException
- filters
가 null 의 경우Arrays.asList(T...)
public static <M, I> RowFilter <M, I> notFilter(RowFilter <M, I> filter)
RowFilter
를 돌려줍니다.
filter
- 부정하는 RowFilter
RowFilter
IllegalArgumentException
- filter
가
null
의 경우public abstract boolean include(RowFilter.Entry <? extends M ,? extends I > entry)
entry
인수는, 호출동안에 한해 유효합니다. 호출의 완료 후에 entry
를 사용했을 경우의 동작은 미정도리입니다.
entry
- 부하의 모델로부터의 객체를 랩 하는 null
이외의
객체
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 차의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.