M -模型的类型,它必须是一个实现
TableModel
public class TableRowSorter<M extends TableModel> extends DefaultRowSorter<M,Integer>
RowSorter提供排序和使用
TableModel过滤。下面的示例显示添加排序到
JTable:
台式createmytablemodel() myModel =;JTable表格=新JTable(myModel);表。setrowsorter(新tablerowsorter(myModel));这将做所有的接线,当用户做适当的手势,如单击列标题,该表将整理。
JTable的基于行的方法和JTable的选择模式是指观点不是基本模型。因此,有必要将两者之间的转换。例如,在myModel你需要转换的指标的选择:
int [] = getselectedrows()选择表;为(int i = 0;i < selection.length;i++){选择[我] =表。convertrowindextomodel(选择[我]);}同样选择基于从底层模型的坐标
JTable连续做逆:
表。setrowselectioninterval(表convertrowindextoview(行),表。convertrowindextoview(行));
前面的示例假定您没有启用筛选。如果您已经启用过滤convertRowIndexToView将返回1的位置,此视图中不可见的。
TableRowSorter使用Comparators做比较。下面的定义如何Comparator选择列:
Comparator已由setComparator方法指定的列,使用它。getColumnClass是String,使用Comparator返回Collator.getInstance()。Comparable,使用Comparator compareTo调用的方法。TableStringConverter已指定,用它来转换的值Strings然后用Comparator返回Collator.getInstance()。Comparator返回的结果Collator.getInstance()从对象上调用toString。除了排序TableRowSorter提供过滤能力。过滤器的使用setFilter方法指定。下面的示例将只显示行包含字符串“foo”:
台式createmytablemodel() myModel =;tablerowsorter分类器=新tablerowsorter(myModel);分拣机。setrowfilter(rowfilter。regexfilter(“foo。*。*”));JTable表格=新JTable(myModel);表setrowsorter(排序);
如果基础模型结构的变化(的modelStructureChanged方法被调用)以下是重置为默认值:Comparators柱,当前的排序顺序,以及每一列是否是合适的。默认的排序顺序是天然的(如模型相同),和列排序的默认。
TableRowSorter有形式参数:模型的类型。传递一个对应于你的模型的类型允许你在没有铸造的基础上过滤你的模型。指的是RowFilter文件这样的一个例子。
警告: DefaultTableModel返回一个Object柱类等所有的比较都将使用toString。这可能是不必要的昂贵。如果列只包含一种类型的值,如Integer,你应该重写getColumnClass并返回适当的类。这将极大地提高这个类的性能。
JTable,
RowFilter,
DefaultTableModel,
Collator,
Comparator
DefaultRowSorter.ModelWrapper<M,I>RowSorter.SortKey| Constructor and Description |
|---|
TableRowSorter()
创建一个空的模型
TableRowSorter。
|
TableRowSorter(M model)
创建一个
TableRowSorter使用
model作为底层
TableModel。
|
| Modifier and Type | Method and Description |
|---|---|
Comparator<?> |
getComparator(int column)
返回指定列的
Comparator。
|
TableStringConverter |
getStringConverter()
返回负责将值从模型转换为字符串的对象。
|
void |
setModel(M model)
设置用作这
TableRowSorter底层模型的
TableModel。
|
void |
setStringConverter(TableStringConverter stringConverter)
设置负责将从该模型转换为字符串的值的对象。
|
protected boolean |
useToString(int column)
返回在排序时是否将值转换为字符串的值,并在排序时进行比较。
|
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, toggleSortOrderaddRowSorterListener, fireRowSorterChanged, fireSortOrderChanged, removeRowSorterListenerpublic TableRowSorter()
TableRowSorter。
public TableRowSorter(M model)
TableRowSorter使用
model作为底层
TableModel。
model -基本
TableModel使用,
null看作一个空模型
public void setModel(M model)
TableRowSorter底层模型的
TableModel。一个价值
null可以用来设置一个空模型。
model -基本模型的使用,或
null
public void setStringConverter(TableStringConverter stringConverter)
null这是用来将任何对象的值,没有注册
Comparator,字符串。
stringConverter负责从模型到字符串转换的值对象
public TableStringConverter getStringConverter()
public Comparator<?> getComparator(int column)
Comparator。如果一个
Comparator尚未指定使用
setComparator方法将返回一
Comparator基于列类(
TableModel.getColumnClass)指定列的。如果列类
String,
Collator.getInstance返回。如果列类实现
Comparable私人
Comparator返回调用方法的
compareTo。否则
Collator.getInstance返回。
getComparator 方法重写,继承类
DefaultRowSorter<M extends TableModel,Integer>
column -柱取
Comparator,在基础模型
Comparator
IndexOutOfBoundsException如果柱底层模型的范围之外
protected boolean useToString(int column)
ModelWrapper.getStringValueAt将使用,否则将使用
ModelWrapper.getValueAt。它是由亚类,如
TableRowSorter,尊重这种价值在他们的
ModelWrapper实施。
useToString 方法重写,继承类
DefaultRowSorter<M extends TableModel,Integer>
column -列的测试指标,在模型的基础上
IndexOutOfBoundsException -如果
column无效
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.