野马table排序初探

来源:互联网 发布:裴秀智唱功知乎 编辑:程序博客网 时间:2024/06/11 05:24
因为之前的swing中jtable不支持自动排序,所以手写了一个排序的功能,但是运行起来总有问题,效率不高,看到jdk6中引入了一个TableRowSorter,拿来尝试一下.
 
网上看到下面这个超简单的实现方法
JTable table = new JTable (model);

table.setAutoCreateRowSorter (
true);
当然了,在doc里面也有个简单的例子
   TableModel myModel = createMyTableModel();
   JTable table 
= new JTable(myModel);
   table.setRowSorter(
new TableRowSorter(myModel));
意思都差不多,如果有特别的排序模式,比如说保存的字符串1,2,10,11,这种要按照数字大小排序,那就需要重写这个类了,具体内容还没看,需要做的时候可以研究一下。
此外对jtable 的过滤功能也可以独立完成了
TableModel myModel = createMyTableModel();
   TableRowSorter sorter 
= new TableRowSorter(myModel);
   sorter.setRowFilter(RowFilter.regexFilter(
".*foo.*"));
   JTable table 
= new JTable(myModel);
   table.setRowSorter(sorter);
我测试了一下速度,8000行的数据,第一次点击排序的时候能感觉到有点卡,不到1秒钟,可以接受,再点就快了,估计是在内存中做过优化。
原创粉丝点击