因为之前的swing中jtable不支持自动排序,所以手写了一个排序的功能,但是运行起来总有问题,效率不高,看到jdk6中引入了一个TableRowSorter,拿来尝试一下.
网上看到下面这个超简单的实现方法
当然了,在doc里面也有个简单的例子
意思都差不多,如果有特别的排序模式,比如说保存的字符串1,2,10,11,这种要按照数字大小排序,那就需要重写这个类了,具体内容还没看,需要做的时候可以研究一下。
此外对jtable 的过滤功能也可以独立完成了
我测试了一下速度,8000行的数据,第一次点击排序的时候能感觉到有点卡,不到1秒钟,可以接受,再点就快了,估计是在内存中做过优化。
网上看到下面这个超简单的实现方法
JTable table
=
new
JTable (model);
table.setAutoCreateRowSorter ( true );
table.setAutoCreateRowSorter ( true );
TableModel myModel
=
createMyTableModel();
JTable table = new JTable(myModel);
table.setRowSorter( new TableRowSorter(myModel));
JTable table = new JTable(myModel);
table.setRowSorter( new TableRowSorter(myModel));
此外对jtable 的过滤功能也可以独立完成了
TableModel myModel
=
createMyTableModel();
TableRowSorter sorter = new TableRowSorter(myModel);
sorter.setRowFilter(RowFilter.regexFilter( " .*foo.* " ));
JTable table = new JTable(myModel);
table.setRowSorter(sorter);
TableRowSorter sorter = new TableRowSorter(myModel);
sorter.setRowFilter(RowFilter.regexFilter( " .*foo.* " ));
JTable table = new JTable(myModel);
table.setRowSorter(sorter);