⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datapagedisplayframe.java

📁 java 数据库编程源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package datapagedisplay;import com.borland.jbcl.layout.*;import java.awt.*;import java.awt.event.*;import java.lang.*;import java.lang.Object.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;/**   * Title:				数据分页显示程序   * Description:			教学示范   * Copyright:				Copyright (c) 2003   * Company:				北京师范大学计算机系   * @author				孙一林   * @version				1.0   */public class DataPageDisplayFrame extends JFrame {  private JPanel contentPane;  private XYLayout xYLayout1 = new XYLayout();          // 构造XYLayout布局管理器  // 创建显示信息的组件  private Button firstpageButton = new Button();  private Button nextpageButton = new Button();  private Label label1 = new Label();  private TextField recordnumField = new TextField();  private Button confirmButton = new Button();  private Button prepageButton = new Button();  private Button lastpageButton = new Button();  private Label label2 = new Label();  private Label label3 = new Label();  private TextField pagedisplayField = new TextField();  Vector vector;                                        // 声明一个向量对象  String[] title = {"学号","姓名","年龄","性别","系名"};   // 二维表列名  Connection connection = null;                         // 声明Connection接口对象connection  ResultSet rs = null;                                  // 定义数据库查询的结果集  Statement statement = null;                           // 定义查询数据库的Statement对象  AbstractTableModel tm;                                // 声明一个AbstractTableModel类对象tm  String sql;  int everypagenumber;                                  // 定义变量存储每页显示记录个数  int t;  int lastpagenum;                                      // 定义变量存储最后一页码数  int pagenum=0;                                        // 初始化变量用来表示当前页的的页码数  public DataPageDisplayFrame() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();    // 初始化组件    firstpageButton.setLabel("首页");    firstpageButton.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        firstpageButton_actionPerformed(e);      }    });    contentPane.setLayout(xYLayout1);    this.setSize(new Dimension(455, 417));    this.setTitle("数据分页显示");    nextpageButton.setLabel("下一页");    nextpageButton.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        nextpageButton_actionPerformed(e);      }    });    label1.setText("请输入每页显示的记录数:");    confirmButton.setLabel("确认");    confirmButton.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        confirmButton_actionPerformed(e);      }    });    prepageButton.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        prepageButton_actionPerformed(e);      }    });    prepageButton.setLabel("上一页");    lastpageButton.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        lastpageButton_actionPerformed(e);      }    });    lastpageButton.setLabel("尾页");    label2.setText("第");    label3.setText("页");    contentPane.add(label1, new XYConstraints(44, 241, 148, 28));    contentPane.add(recordnumField,new XYConstraints(212, 236, 68, 32));    contentPane.add(confirmButton,new XYConstraints(315, 236, 68, 32));    contentPane.add(nextpageButton,new XYConstraints(240, 297, 77, 39));    contentPane.add(prepageButton,new XYConstraints(135, 297, 77, 39));    contentPane.add(firstpageButton,new XYConstraints(30, 297, 77, 39));    contentPane.add(lastpageButton,new XYConstraints(345, 297, 77, 39));    contentPane.add(pagedisplayField, new XYConstraints(392, 352, 30, 19));    contentPane.add(label2, new XYConstraints(373, 349, 22, 24));    contentPane.add(label3, new XYConstraints(428, 349, 22, 24));    createtable();                             // 在初始化函数中调用createtable()函数显示表格  }  void createtable() {                         // 定义createtable()函数    JTable table;                              // 声明一个JTable类对象table    JScrollPane scroll;                        // 声明一个滚动杠对象scroll    vector = new Vector();                     // 创建向量对象    tm = new AbstractTableModel() {            // 创建AbstractTableModel类对象tm      public int getColumnCount() {            // 取得表格列数        return title.length;      }      public int getRowCount() {               // 取得表格行数        return vector.size();      }      public Object getValueAt(int row, int column) { // 取得单元格中的属性值        if(!vector.isEmpty()) {          return ((Vector)vector.elementAt(row)).elementAt(column);        }        else {          return null;        }      }      public void setValueAt(Object value, int row, int column) {// 数据模型不可编辑,该方法设置为空      }      public String getColumnName(int column) {   // 取得表格列名        return title[column];      }      public Class getColumnClass(int c) {        // 取得列所属对象类        return getValueAt(0,c).getClass();      }      public boolean isCellEditable(int row, int column) {// 设置单元格不可编辑,为缺省实现        return false;      }    };    table = new JTable(tm);                             // 生成自己的数据模型    table.setToolTipText("Display Query Result");       // 设置帮助提示    table.setAutoResizeMode(table.AUTO_RESIZE_OFF);     // 设置表格调整尺寸模式    table.setCellSelectionEnabled(false);               // 设置单元格选择方式    table.setShowHorizontalLines(true);                 // 设置是否显示单元格之间的分割线    table.setShowVerticalLines(true);    scroll = new JScrollPane(table);                    // 给表格加上滚动杠    scroll.setBounds(6,20,540,250);    contentPane.add(scroll,new XYConstraints(16, 20, 395, 200));  }  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }  void firstpageButton_actionPerformed(ActionEvent e) {    // 处理“首页”按钮情况    try {      pagenum=1;                                           // 首页所以pagenum设为1      int recordnum=0;                                     // 初始化数据表中的记录数      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");       // 实例化JDBC-ODBC桥的驱动      String url = "jdbc:odbc:TestDbStu";                  // 设置连接字符串      connection = DriverManager.getConnection(url);       // 连接数据库      // 创建Statement接口对象      statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);      sql = "select * from studentbase ";      // 执行statement对象的executeQuery方法,查询studentbase表,将查询结果放入rs中      rs = statement.executeQuery(sql);      while(rs.next()) {        recordnum++;                                       // 统计数据表中的记录个数      }      // 求得分页显示的页码总数      int t=recordnum%everypagenumber;      if (t!=0)        lastpagenum=(recordnum/everypagenumber+1);      else        lastpagenum=recordnum/everypagenumber;      rs.beforeFirst() ;      String displaypage=pagenum+"/"+lastpagenum;      pagedisplayField.setText(displaypage) ;              // 显示当前页码情况      vector.removeAllElements();                          // 初始化向量对象      tm.fireTableStructureChanged();                      // 更新表格内容      for(int i=1;i<=everypagenumber;i++) {        rs.next();        Vector rec_vector = new Vector();        // 从结果集中取数据放入向量rec_vector中        rec_vector.addElement(String.valueOf(rs.getInt(1)));        rec_vector.addElement(rs.getString(2));        rec_vector.addElement(String.valueOf(rs.getInt(3)));        rec_vector.addElement(rs.getString(4));        rec_vector.addElement(rs.getString(5));        vector.addElement(rec_vector);                     // 向量rec_vector加入向量vector中      }      tm.fireTableStructureChanged();                      // 更新表格,显示向量vector的内容    }    catch(SQLException ex){                                // 捕捉异常      System.out.println("\nERROR:----- SQLException -----\n");      while (ex != null) {        System.out.println("Message:   " + ex.getMessage());        System.out.println("SQLState:  " + ex.getSQLState());        System.out.println("ErrorCode: " + ex.getErrorCode());        ex = ex.getNextException();      }    }    catch(Exception ex ) {      ex.printStackTrace();    }    finally {      try {        if(statement != null) {          statement.close();                                // 关闭Statement接口实例        }        if(connection != null) {          connection.close();                               // 关闭Connection接口实例        }      }      catch (SQLException ex)  {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -