对数据进行分页,显示到table中

来源:互联网 发布:算法导论 中文 epub 编辑:程序博客网 时间:2024/04/30 06:48

我最先用jframe编程的时候写的比较简单,只是先查询到所有记录,再根据当前页码筛选出当前页的记录,返回的小集合可以直接显示到table上。

import java.util.ArrayList;import java.util.List;import com.yu.entity.User;public class PageController {   private List<User> bigList=new ArrayList<User>(); //大集合,从外界获取    private List<User> smallList=new ArrayList<User>(); //小集合,返回给调用它的类       private static int curentPageIndex=1;        //当前页码                         private int countPerpage=10;        //每页显示条数       private int pageCount;           //总页数       private int recordCount;           //总记录条数              //初始化块,调用类的时候首先自动加载       {        //调用查询数据库的方法,返回一个List       this.bigList = new Utils().query();       //计算总页数       if (bigList.size()%countPerpage==0) {       this.pageCount=bigList.size()/countPerpage;   } else {   this.pageCount=(bigList.size()/countPerpage)+1;   }       }             public  PageController() {         }       //传入指定页码的构造函数,参看第几页。       public PageController(int curentPageIndex){       this.curentPageIndex=curentPageIndex;       }              //确切的获取当前页的记录,返回一个list列表       public List<User> setCurentPageIndex() {                                return select();       }           //下一页       public List<User> nextPage() {                   if (curentPageIndex < pageCount ) {             curentPageIndex++;             System.out.println("当前页:"+curentPageIndex);            }   return select();         }      //上一页      public List<User> previousPage() {            if (curentPageIndex > 1) {                  curentPageIndex--;                  System.out.println("当前页:"+curentPageIndex);            }                     return select();      }      //此方法供以上方法调用,根据当前页,筛选记录      public List<User> select(){                    recordCount=bigList.size();          for(int i=(curentPageIndex-1)*countPerpage; i<curentPageIndex*countPerpage&&i<recordCount; i++){                 smallList.add(bigList.get(i));          }                   return smallList;      }     }


 

下面是写在jframe中的内容,调用分页方法。

        //查询上一页private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {List<User> newlist = new PageController().previousPage();viewAll(newlist);}//返回第一页的记录private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {List<User> newlist = new PageController(1).setCurentPageIndex();viewAll(newlist);}//查询下一页private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {List<User> newlist = new PageController().nextPage();viewAll(newlist);}      //显示List中的用户public void viewAll(List<User> list) {Object[][] objects = new Object[(list.size())][];for (int i = 0; i < objects.length; i++) {objects[i] = new Object[3];objects[i][0] = i + 1;objects[i][1] = list.get(i).getUserid();objects[i][2] = list.get(i).getTruename();}jTable1.setModel(new javax.swing.table.DefaultTableModel(objects,new String[] { "行号", "工号", "姓名" }));}


 

0 0
原创粉丝点击