|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.swing.RowSorter <M>
javax.swing.DefaultRowSorter <M,Integer >
javax.swing.table.TableRowSorter<M>
M
- 모델의 형태.
TableModel
의 구현일 필요가 있다public class TableRowSorter<M extends TableModel >
TableModel
를 사용해 소트 및 필터 기능을 제공하는 RowSorter
의 구현입니다. 다음에 나타내는 것은,JTable
에 소트 기능을 추가하는 예입니다.
TableModel myModel = createMyTableModel(); JTable table = new JTable(myModel); table.setRowSorter(new TableRowSorter(myModel));이 코드는, 사용자가 적절한 제스처(gesture) (열헤더의 클릭등)를 실행했을 때 테이블이 시각적으로 소트 되도록(듯이), 접속 처리를 실시합니다.
JTable
의 행 베이스의 메소드와 JTable
의 선택 모델은, 뷰를 참조합니다만, 부하의 모델은 참조하지 않습니다. 따라서, 2 개의 사이에 변환을 실시할 필요가 있습니다. 예를 들어,myModel
의 선택을 실시하는 경우는, 다음과 같이 인덱스를 변환할 필요가 있습니다.
int[] selection = table.getSelectedRows(); for (int i = 0; i < selection.length; i++) { selection[i] = table.convertRowIndexToModel(selection[i]); }좌표에 근거한
JTable
내의 행을 선택할 때와 같게, 부하의 모델로부터 반대의 처리를 실시합니다.
table.setRowSelectionInterval(table.convertRowIndexToView(row), table.convertRowIndexToView(row));
전의 예는, 필터 기능이 유효하게 되지 않은 경우의 예입니다. 필터 기능이 유효하게 되어 있는 경우,convertRowIndexToView
는, 뷰에 표시되지 않는 장소에 대해서 -1 를 돌려줍니다.
TableRowSorter
는, 비교때,Comparator
를 사용합니다. 열에 대해서 Comparator
를 선택하는 방법은, 다음과 같이 정의합니다.
Comparator
가 setComparator
메소드를 사용해 지정되고 있는 경우는, 이 메소드를 사용합니다.
getColumnClass
로부터 반환되는 열클래스가 String
의 경우는,Collator.getInstance()
로부터 반환되는 Comparator
를 사용합니다.
Comparable
를 구현하는 경우는,compareTo
메소드를 호출하는 Comparator
을 사용합니다.
TableStringConverter
가 지정되고 있는 경우는, 이것을 사용해 값을 String
로 변환해,Collator.getInstance()
로부터 반환되는 Comparator
를 사용합니다.
toString
를 호출한 결과에 대해서,Collator.getInstance()
로부터 반환되는 Comparator
를 사용합니다.
TableRowSorter
는, 소트 기능 외에 필터 기능도 제공합니다. 필터의 지정에는,setFilter
메소드를 사용합니다. 다음에 나타내는 것은, 캐릭터 라인 「foo」를 포함한 행만을 표시하는 예입니다.
TableModel myModel = createMyTableModel(); TableRowSorter sorter = new TableRowSorter(myModel); sorter.setRowFilter(RowFilter.regexFilter(". *foo. *")); JTable table = new JTable(myModel); table.setRowSorter(sorter);
부하의 모델의 구조가 변화했을 경우 (modelStructureChanged
메소드가 불려 갔을 경우), 열의 Comparator
, 현재의 소트 순서, 및 각 열이 소트 가능한지 어떤지의 설정이 리셋 되어 디폴트 값에 돌아옵니다. 디폴트에서는 소트는 행해지지 않고 (모델과 같이), 열은 소트 가능합니다.
TableRowSorter
에는, 가파라미터형 (모델의 형태)이 1 개 있습니다. 모델에 정확하게 대응하는 형태를 건네주는 것으로, 캐스트없이 모델에 근거해 필터를 적용할 수가 있습니다. 이 예에 대해서는 RowFilter
의 설명을 참조해 주세요.
경고: DefaultTableModel
는 Object
의 열클래스를 돌려줍니다. 그 때문에, 모든 비교는 toString
를 사용해 행해집니다. 이것은 부하가 클 가능성이 있습니다. 열에 1 개의 형태 (Integer
등) 밖에 포함되지 않는 경우는,getColumnClass
를 오버라이드(override) 해 적절한 Class
를 돌려주도록(듯이) 합니다. 이것에 의해, 이 클래스의 퍼포먼스가 비약적으로 향상합니다.
JTable
,
RowFilter
,
DefaultTableModel
,
Collator
,
Comparator
상자의 클래스의 개요 |
---|
클래스 javax.swing. DefaultRowSorter 로부터 상속된 상자의 클래스/인터페이스 |
---|
DefaultRowSorter.ModelWrapper <M ,I > |
클래스 javax.swing. RowSorter 로부터 상속된 상자의 클래스/인터페이스 |
---|
RowSorter.SortKey |
생성자 의 개요 | |
---|---|
TableRowSorter ()
빈 상태(empty)의 모델로 TableRowSorter 를 작성합니다. |
|
TableRowSorter (M model)
model 를 부하의 TableModel 로서 사용해,TableRowSorter 를 작성합니다. |
메소드의 개요 | |
---|---|
Comparator <? > |
getComparator (int column)
지정된 열의 Comparator 를 돌려줍니다. |
TableStringConverter |
getStringConverter ()
값을 모델로부터 캐릭터 라인으로 변환하기 위해서(때문에) 사용하는 객체를 돌려줍니다. |
void |
setModel (M model)
이 TableRowSorter 의 부하의 모델로서 사용하는 TableModel 를 설정합니다. |
void |
setStringConverter (TableStringConverter stringConverter)
값을 모델로부터 캐릭터 라인으로 변환하기 위해서(때문에) 사용하는 객체를 설정합니다. |
protected boolean |
useToString (int column)
소트시에 비교를 실시하기 전에, 값을 캐릭터 라인으로 변환할지 어떨지를 돌려줍니다. |
클래스 javax.swing. DefaultRowSorter 로부터 상속된 메소드 |
---|
allRowsChanged , convertRowIndexToModel , convertRowIndexToView , getMaxSortKeys , getModel , getModelRowCount , getModelWrapper , getRowFilter , getSortKeys , getSortsOnUpdates , getViewRowCount , isSortable , modelStructureChanged , rowsDeleted , rowsInserted , rowsUpdated , rowsUpdated , setComparator , setMaxSortKeys , setModelWrapper , setRowFilter , setSortable , setSortKeys , setSortsOnUpdates , sort , toggleSortOrder |
클래스 javax.swing. RowSorter 로부터 상속된 메소드 |
---|
addRowSorterListener , fireRowSorterChanged , fireSortOrderChanged , removeRowSorterListener |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
생성자 의 상세 |
---|
public TableRowSorter()
TableRowSorter
를 작성합니다.
public TableRowSorter(M model)
model
를 부하의 TableModel
로서 사용해,TableRowSorter
를 작성합니다.
model
- 사용하는 부하의 TableModel
.
null
치는 빈 상태(empty)의 모델로서 다루어진다메소드의 상세 |
---|
public void setModel(M model)
TableRowSorter
의 부하의 모델로서 사용하는 TableModel
를 설정합니다. null
치를 지정하면(자), 빈 상태(empty)의 모델을 설정할 수가 있습니다.
model
- 사용하는 부하의 모델, 또는 null
public void setStringConverter(TableStringConverter stringConverter)
null
이외의 값을 지정했을 경우, 등록을 마친 Comparator
를 가지지 않는 객체치를 캐릭터 라인으로 변환할 수가 있습니다.
stringConverter
- 치를 모델로부터 캐릭터 라인으로 변환하기 위해서(때문에)
사용하는 객체public TableStringConverter getStringConverter()
public Comparator <? > getComparator(int column)
Comparator
를 돌려줍니다. setComparator
메소드를 사용해 Comparator
를 지정하고 있지 않는 경우, 지정한 열의 열클래스 (TableModel.getColumnClass
)에 근거해 Comparator
가 돌려주어집니다. 열클래스가 String
의 경우,Collator.getInstance
가 돌려주어집니다. 열클래스가 Comparable
를 구현하는 경우는,compareTo
메소드를 호출하는 private 의 Comparator
가 돌려주어집니다. 그렇지 않은 경우는,Collator.getInstance
가 돌려주어집니다.
DefaultRowSorter <M extends TableModel ,Integer >
내의 getComparator
column
- 부하의 모델에 근거해,Comparator
를
페치 하는 열
Comparator
IndexOutOfBoundsException
- 열이 부하의 모델의
범위외에 있는 경우protected boolean useToString(int column)
ModelWrapper.getStringValueAt
를 사용해, 그렇지 않은 경우는 ModelWrapper.getValueAt
를 사용합니다. ModelWrapper
구현내에서 이 값을 받는,TableRowSorter
등의 서브 클래스에 일치합니다.
DefaultRowSorter <M extends TableModel ,Integer >
내의 useToString
column
- 부하의 모델에 근거해, 테스트하는 열의 인덱스
IndexOutOfBoundsException
- column
가 유효하지 않은 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.