本文共 3496 字,大约阅读时间需要 11 分钟。
主要方法就是,建立一个Vector,首先将所有的数据都读入到Vector中,然后根据每页需要显示的数目来从Vector中选取需要的数据。 -
-
-
-
-
- package test;
-
- import java.sql.*;
- import java.util.*;
- import javax.swing.table.DefaultTableModel;
-
-
-
-
-
- public class TableTest extends javax.swing.JFrame {
-
- private Vector<User> userVector = new Vector<User>();
- private static int rowPerPage = 10;
- private int totalPage;
- private int totalRow;
- private int currentPage = 1;
- private DefaultTableModel model;
- private String[] headers = { "id", "uid", "pwd", "email", "name", "qq", "year", "month", "day"};
-
-
- public TableTest() {
- initComponents();
- model = new DefaultTableModel(headers, 10);
- this.jTable1.setModel(model);
- }
-
- private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
-
- totalRow = getCount();
- totalPage = totalRow / rowPerPage + 1;
- ResultSet rs = getResult();
- try {
- while (rs.next()) {
- User user = new User();
- user.setId(rs.getInt(1));
- user.setUid(rs.getString(2));
- user.setPwd(rs.getString(3));
- user.setEmail(rs.getString(4));
- user.setName(rs.getString(5));
- user.setQq(rs.getString(6));
- user.setYear(rs.getString(7));
- user.setMonth(rs.getString(8));
- user.setDay(rs.getString(9));
- userVector.add(user);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- System.out.println(userVector.size());
- showPage(currentPage);
- this.jLabelTotalPage.setText("Total Page:" + totalPage);
- this.jLabelCurentPage.setText("Current Page:" + currentPage);
- }
-
- private void jButtonNextActionPerformed(java.awt.event.ActionEvent evt) {
-
- if (currentPage < totalPage) {
- currentPage = currentPage + 1;
- showPage(currentPage);
- this.jLabelCurentPage.setText("Current Page:" + currentPage);
- }
- }
-
- private void jButtonPreviousActionPerformed(java.awt.event.ActionEvent evt) {
-
- if (currentPage > 1) {
- currentPage = currentPage - 1;
- showPage(currentPage);
- this.jLabelCurentPage.setText("Current Page:" + currentPage);
- }
- }
-
- private void showPage(int i) {
- model = new DefaultTableModel() {
-
- @Override
- public boolean isCellEditable(int rows, int column) {
- return false;
- }
- };
-
-
- model.setColumnIdentifiers(headers);
- currentPage = i;
- System.out.println("Current page is:" + i);
- int start = 10 * (i - 1);
- for (int j = start; j < start + 10; j++) {
- try {
- User v = userVector.get(j);
- Object[] object = new Object[]{v.getId(), v.getUid(), v.getPwd(), v.getName(), v.getQq(),
- v.getYear(), v.getMonth(), v.getDay()
- };
- model.addRow(object);
- } catch (Exception e) {
- }
- }
- this.jTable1.setModel(model);
- }
-
- private Connection getConnection() {
- Connection conn = null;
- try {
- Class.forName("com.mysql.jdbc.Driver");
- String url = "jdbc:mysql://localhost:3306/personal";
- String user = "root";
- String pwd = "root";
- conn = DriverManager.getConnection(url, user, pwd);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return conn;
- }
-
- public ResultSet getResult() {
- ResultSet rs = null;
- try {
- Connection conn = getConnection();
- Statement stmt = conn.createStatement();
- String sql = "select * from userinfo";
- rs = stmt.executeQuery(sql);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return rs;
- }
-
- public int getCount() {
- int result = 0;
- try {
- Connection conn = getConnection();
- Statement stmt = conn.createStatement();
- String sql = "select count(*) from userinfo";
- ResultSet rs = stmt.executeQuery(sql);
- if (rs.next()) {
- result = rs.getInt(1);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return result;
- }
- }
转载地址:http://gybvi.baihongyu.com/