JavaTM Platform
Standard Ed. 6

javax.swing
클래스 RowSorter<M>

java.lang.Object 
  상위를 확장 javax.swing.RowSorter<M>
형태 파라미터:
M - 부하의 모델의 타입
직계의 기존의 서브 클래스:
DefaultRowSorter


public abstract class RowSorter<M>
extends Object

RowSorter 는, 소트와 필터의 기반을 제공합니다. 작성시나 인스톨시 이외에,RowSorter 와 직접 대화할 필요는 거의 없습니다. JTableRowSorter 의 구상 구현에 대해서는,TableRowSorter 를 참조해 주세요.  

RowSorter 의 기본 기능은, 뷰 (JTable 등)의 2 개의 좌표계와 부하의 데이터 소스 (일반적으로은 모델)의 좌표계의 매핑을 실시하는 것입니다.  

뷰는,RowSorter 상에서다음의 메소드를 호출합니다.

뷰는 convertRowIndexToModel 메소드,convertRowIndexToView 메소드, 및 getViewRowCount 메소드를 매우 자주(잘) 사용하므로, 이러한 메소드는 고속으로 있을 필요가 있습니다.  

RowSorterEvent 는,RowSorterListener 를 사용해 변경의 통지를 실시합니다. 통지에는, 다음의 2 종류가 있습니다.

RowSorter 구현과 부하의 모델의 매핑은, 일반적으로, 1 대 1 으로는 되고 있지 않습니다만, 1 대 1 으로 하는 일도 가능합니다. 예를 들어, 소트를 실시하는 데이타베이스는, 백그라운드 thread상에서 toggleSortOrder 를 호출합니다. 이 메소드는, 매핑 메소드를 오버라이드(override) 해, 건네받은 인수를 돌려줍니다.

RowSorter 의 구상 구현은,TableModel,ListModel 등의 모델을 참조할 필요가 있습니다. JTableJList 등의 뷰크라스도, 모델을 참조합니다. 순서의 의존성을 회피하기 위해(때문에),RowSorter 구현이 모델상에 청취자를 인스톨 하지 않게 해 주세요. 모델이 변경되면(자), 뷰크라스가 RowSorter 를 호출합니다. 예를 들어,TableModel JTable 로 행이 갱신되었을 경우,rowsUpdated 가 불려 갑니다. 모델이 변경되면(자), 뷰는,modelStructureChanged,allRowsChanged,rowsInserted,rowsDeleted,rowsUpdated 의 몇개의 메소드를 호출합니다.

도입된 버젼:
1.6
관련 항목:
TableRowSorter

상자의 클래스의 개요
static class RowSorter.SortKey
          SortKey 는, 특정의 열의 소트 순서를 기술합니다.
 
생성자 의 개요
RowSorter ()
          RowSorter 를 작성합니다.
 
메소드의 개요
 void addRowSorterListener (RowSorterListener  l)
          이 RowSorter 에 관한 통지를 받는 RowSorterListener 를 추가합니다.
abstract  void allRowsChanged ()
          부하의 모델의 컨텐츠가 완전하게 변경되었을 경우에 불려 갑니다.
abstract  int convertRowIndexToModel (int index)
          부하의 모델의 index 의 위치를 돌려줍니다.
abstract  int convertRowIndexToView (int index)
          뷰의 index 의 위치를 돌려줍니다.
protected  void fireRowSorterChanged (int[] lastRowIndexToModel)
          매핑이 변경된 것을 청취자에게 통지합니다.
protected  void fireSortOrderChanged ()
          소트 순서가 변경된 것을 청취자에게 통지합니다.
abstract  M getModel ()
          부하의 모델을 돌려줍니다.
abstract  int getModelRowCount ()
          부하의 모델의 행수를 돌려줍니다.
abstract  List <? extends RowSorter.SortKey > getSortKeys ()
          현재의 소트 키를 돌려줍니다.
abstract  int getViewRowCount ()
          뷰내의 행수를 돌려줍니다.
abstract  void modelStructureChanged ()
          부하의 모델의 구조가 완전하게 변경되었을 경우에 불려 갑니다.
 void removeRowSorterListener (RowSorterListener  l)
          RowSorterListener 를 삭제합니다.
abstract  void rowsDeleted (int firstRow, int endRow)
          부하의 모델의 지정된 범위 (상한치와 하한치를 포함한다)로부터 행이 삭제되었을 경우에 불려 갑니다.
abstract  void rowsInserted (int firstRow, int endRow)
          부하의 모델의 지정된 범위 (상한치와 하한치를 포함한다)에 행이 삽입되었을 경우에 불려 갑니다.
abstract  void rowsUpdated (int firstRow, int endRow)
          부하의 모델의 지정된 범위 (상한치와 하한치를 포함한다)에서 행이 변경되었을 경우에 불려 갑니다.
abstract  void rowsUpdated (int firstRow, int endRow, int column)
          부하의 모델의 지정된 범위에서 은행내의 열이 갱신되었을 경우에 불려 갑니다.
abstract  void setSortKeys (List <? extends RowSorter.SortKey > keys)
          현재의 소트 키를 설정합니다.
abstract  void toggleSortOrder (int column)
          지정된 열의 소트 순서를 반대로 합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

RowSorter

public RowSorter()
RowSorter 를 작성합니다.

메소드의 상세

getModel

public abstract M  getModel()
부하의 모델을 돌려줍니다.

반환값:
부하의 모델

toggleSortOrder

public abstract void toggleSortOrder(int column)
지정된 열의 소트 순서를 반대로 합니다. 불려 갔을 때에 이와 우리의 동작을 얻을 수 있을지 어떨지는, 서브 클래스에 의해 정해집니다. 일반적으로, 지정된 열이 제 1 의 소트열이었을 경우, 소트 순서를 승순으로부터 내림차순에, 또는 내림차순으로부터 승순에 바꿉니다. 그렇지 않은 경우는, 지정의 열을 제 1 의 소트열 (승순)로 변경합니다. 지정된 열이 소트 가능하지 않은 경우, 이 메소드는 아무것도 영향을 미치지 않습니다.  

이 메소드에 의해 소트 순서가 변경되어 소트를 하는 경우는, 적절한 RowSorterListener 통지가 송신됩니다.

파라미터:
column - 부하의 모델에 근거해, 소트 순서를 바꾸는 열
예외:
IndexOutOfBoundsException - 열이 부하의 모델의 범위외에 있는 경우

convertRowIndexToModel

public abstract int convertRowIndexToModel(int index)
부하의 모델의 index 의 위치를 돌려줍니다. 뷰의 좌표의 행 index 의 경우, 부하의 모델의 행 인덱스를 돌려줍니다.

파라미터:
index - 부하의 뷰의 행 인덱스
반환값:
뷰의 행 인덱스
예외:
IndexOutOfBoundsException - index 가 뷰의 범위외에 있는 경우

convertRowIndexToView

public abstract int convertRowIndexToView(int index)
뷰의 index 의 위치를 돌려줍니다. 부하의 모델의 좌표의 행 index 의 경우, 뷰의 행 인덱스를 돌려줍니다.

파라미터:
index - 부하의 모델의 행 인덱스
반환값:
뷰의 행 인덱스. 인덱스가 뷰의 범위외에 있는 경우는 -1
예외:
IndexOutOfBoundsException - index 가 모델의 범위외에 있는 경우

setSortKeys

public abstract void setSortKeys(List <?  extends RowSorter.SortKey > keys)
현재의 소트 키를 설정합니다.

파라미터:
keys - 신규의 SortKeys. 빈 상태(empty)의 리스트 (이 뷰에서는 소트를 실시하지 않는 것을 나타낸다)를 지정하는 경우는 null

getSortKeys

public abstract List <?  extends RowSorter.SortKey > getSortKeys()
현재의 소트 키를 돌려줍니다. 이 메소드는 null 가 아닌 List 를 돌려줍니다. 게다가 변경 불가능한 List 를 돌려주는 일도 있습니다. 소트 키를 변경할 필요가 있는 경우는, 반환된 List 의 카피를 작성해, 이 카피를 변경해 작성한 새로운 리스트를 사용해,setSortKeys 를 호출합니다.

반환값:
현재의 소트 순서

getViewRowCount

public abstract int getViewRowCount()
뷰내의 행수를 돌려줍니다. 컨텐츠에 필터가 적용되고 있는 경우, 이 값이 부하의 모델의 행수와 일치하지 않을 가능성이 있습니다.

반환값:
뷰내의 행수
관련 항목:
getModelRowCount()

getModelRowCount

public abstract int getModelRowCount()
부하의 모델의 행수를 돌려줍니다.

반환값:
부하의 모델의 행수
관련 항목:
getViewRowCount()

modelStructureChanged

public abstract void modelStructureChanged()
부하의 모델의 구조가 완전하게 변경되었을 경우에 불려 갑니다. 예를 들어,TableModel 로 렬수가 변경되었을 경우에, 이 메소드가 불려 갑니다.  

일반적으로, 사용자가 이 메소드를 호출할 것은 없습니다. 이 메소드는, 뷰크라스로부터 호출할 수 있도록(듯이) public 가 되어 있습니다.


allRowsChanged

public abstract void allRowsChanged()
부하의 모델의 컨텐츠가 완전하게 변경되었을 경우에 불려 갑니다. 변경된 것은 컨텐츠 뿐이어서, 테이블의 구조는 바뀌지 않습니다. 이것은, 일반적으로, 그 외의 메소드에서는 지정할 수 없는 것 같은 과도의 변경이 있었을 경우에 송신됩니다.  

일반적으로, 사용자가 이 메소드를 호출할 것은 없습니다. 이 메소드는, 뷰크라스로부터 호출할 수 있도록(듯이) public 가 되어 있습니다.


rowsInserted

public abstract void rowsInserted(int firstRow,
                                  int endRow)
부하의 모델의 지정된 범위 (상한치와 하한치를 포함한다)에 행이 삽입되었을 경우에 불려 갑니다.  

대상이 되는 범위의 인덱스는, 인수로 지정합니다. 제 1 의 인수는, 변경전의 모델을 기본으로 하고 있어, 변경전의 모델의 사이즈 이하일 필요가 있습니다. 제 2 의 인수는, 변경 후의 모델을 기본으로 하고 있어, 변경 후의 모델의 사이즈 미만일 필요가 있습니다. 예를 들어 5 행의 모델의 말미에 3 항목을 추가하는 경우, 인덱스는 5,7 이 됩니다.

일반적으로, 사용자가 이 메소드를 호출할 것은 없습니다. 이 메소드는, 뷰크라스로부터 호출할 수 있도록(듯이) public 가 되어 있습니다.

파라미터:
firstRow - 최초의 행
endRow - 마지막 행
예외:
IndexOutOfBoundsException - 몇개의 인수가 무효인 경우, 또는 firstRowendRow 보다 큰 경우

rowsDeleted

public abstract void rowsDeleted(int firstRow,
                                 int endRow)
부하의 모델의 지정된 범위 (상한치와 하한치를 포함한다)로부터 행이 삭제되었을 경우에 불려 갑니다.  

대상이 되는 범위의 인덱스는, 변경전의 모델을 나타내는 인수로 지정합니다. 예를 들어 5 행의 모델의 말미로부터 3 항목을 삭제하는 경우, 인덱스는 2,4 가 됩니다.

일반적으로, 사용자가 이 메소드를 호출할 것은 없습니다. 이 메소드는, 뷰크라스로부터 호출할 수 있도록(듯이) public 가 되어 있습니다.

파라미터:
firstRow - 최초의 행
endRow - 마지막 행
예외:
IndexOutOfBoundsException - 어느 쪽인가의 인수가 변경전의 모델의 범위외에 있는 경우, 또는 firstRow 쪽이 endRow 보다 큰 경우

rowsUpdated

public abstract void rowsUpdated(int firstRow,
                                 int endRow)
부하의 모델의 지정된 범위 (상한치와 하한치를 포함한다)에서 행이 변경되었을 경우에 불려 갑니다.  

일반적으로, 사용자가 이 메소드를 호출할 것은 없습니다. 이 메소드는, 뷰크라스로부터 호출할 수 있도록(듯이) public 가 되어 있습니다.

파라미터:
firstRow - 부하의 모델의 최초의 행
endRow - 부하의 모델의 마지막 행
예외:
IndexOutOfBoundsException - 어느 쪽인가의 인수가 부하의 모델의 범위외에 있는 경우, 또는 firstRow 쪽이 endRow 보다 큰 경우

rowsUpdated

public abstract void rowsUpdated(int firstRow,
                                 int endRow,
                                 int column)
부하의 모델의 지정된 범위에서 은행내의 열이 갱신되었을 경우에 불려 갑니다.  

일반적으로, 사용자가 이 메소드를 호출할 것은 없습니다. 이 메소드는, 뷰크라스로부터 호출할 수 있도록(듯이) public 가 되어 있습니다.

파라미터:
firstRow - 부하의 모델의 최초의 행
endRow - 부하의 모델의 마지막 행
column - 부하의 모델에 근거해, 변경한 열
예외:
IndexOutOfBoundsException - 어느 쪽인가의 인수가 변경 후의 부하의 모델의 범위외에 있는 경우,firstRow 쪽이 endRow 보다 큰 경우, 또는 column 가 부하의 모델의 범위외에 있는 경우

addRowSorterListener

public void addRowSorterListener(RowSorterListener  l)
RowSorter 에 관한 통지를 받는 RowSorterListener 를 추가합니다. 같은 청취자를 복수 추가했을 경우, 복수의 통지를 받게 됩니다. lnull 의 경우, 아무것도 행해지지 않습니다.

파라미터:
l - RowSorterListener

removeRowSorterListener

public void removeRowSorterListener(RowSorterListener  l)
RowSorterListener 를 삭제합니다. lnull 의 경우, 아무것도 행해지지 않습니다.

파라미터:
l - RowSorterListener

fireSortOrderChanged

protected void fireSortOrderChanged()
소트 순서가 변경된 것을 청취자에게 통지합니다.


fireRowSorterChanged

protected void fireRowSorterChanged(int[] lastRowIndexToModel)
매핑이 변경된 것을 청취자에게 통지합니다.

파라미터:
lastRowIndexToModel - 소트전의 모델 인덱스로부터 뷰인젝스에의 매핑 (null 의 경우도 있다)

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.