Eclipse+Java+Swing实现学生信息管理系统(下)

简介: Eclipse+Java+Swing实现学生信息管理系统

MainMenuFrame.java

package com.sjsq.view;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import org.jb2011.lnf.beautyeye.ch3_button.BEButtonUI;
/*
 * 登陆成功后主界面
 */
public class MainMenuFrame extends JFrame implements ActionListener{
  private JFrame mainmenu;
  private JTextArea text;
  // 标题栏(关于)
  private JMenuBar menuBar1;
  private JMenuItem aboutSystem;
  public MainMenuFrame() {
    mainmenu();
  }
  public void mainmenu() {
    mainmenu = new JFrame("极客大学学生管理系统");
    setLocationRelativeTo(null);// 将容器显示在屏幕中央
    mainmenu.setSize(850, 650);
    mainmenu.getContentPane().add(new JScrollPane(text));
    JPanel jContentPane = new JPanel();
    jContentPane.setLayout(null);
    // 查询学生按钮
    JButton jButtonSelect = new JButton();
    jButtonSelect.setBounds(new Rectangle(320, 100, 100, 52));
    jButtonSelect.setText("查询学生");
    jButtonSelect.setUI(new BEButtonUI()
        .setNormalColor(BEButtonUI.NormalColor.lightBlue));
    getRootPane().setDefaultButton(jButtonSelect);// 回车登录
    // 添加学生按钮
    JButton jButtonAdd = new JButton();
    jButtonAdd.setUI(new BEButtonUI()
        .setNormalColor(BEButtonUI.NormalColor.lightBlue));
    jButtonAdd.setBounds(new Rectangle(320, 200, 100, 52));
    jButtonAdd.setText("添加学生");
    // 修改密码按钮
    JButton jButtonAlterPwd = new JButton();
    jButtonAlterPwd.setUI(new BEButtonUI()
        .setNormalColor(BEButtonUI.NormalColor.lightBlue));
    jButtonAlterPwd.setBounds(new Rectangle(320, 300, 100, 52));
    jButtonAlterPwd.setText("密码修改");
    // 退出系统按钮
    JButton jButtonExit = new JButton();
    jButtonExit.setUI(new BEButtonUI()
        .setNormalColor(BEButtonUI.NormalColor.lightBlue));
    jButtonExit.setBounds(new Rectangle(320, 400, 100, 52));
    jButtonExit.setText("退出系统");
    jContentPane.add(jButtonSelect, null);
    jContentPane.add(jButtonAdd, null);
    jContentPane.add(jButtonAlterPwd, null);
    jContentPane.add(jButtonExit, null);
    // 添加Label到Frame
    mainmenu.getContentPane().add(jContentPane);
    // 设置字体
    Font font = new Font("微软雅黑",Font.BOLD,16);
    // 标题栏
    menuBar1 = new JMenuBar();
    //aboutSystem = new JMenuItem("关于本系统",new ImageIcon("src/images/icons/about.png"));
    aboutSystem = new JMenuItem("关于本系统");
    aboutSystem.setMnemonic('H');
    menuBar1.add(aboutSystem);
    // 查询学生
    jButtonSelect.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        System.out.println("------查询学生-----");
        QueryStudentInfo queryStudentInfo = new QueryStudentInfo();
      }
    });
    // 添加学生
    jButtonAdd.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        System.out.println("------添加学生-----");
        AddStudentInfo addStudentInfo = new AddStudentInfo();
      }
    });
    // 修改密码
    jButtonAlterPwd.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        System.out.println("------修改密码-----");
        ModifyPasswordInfo modifyPasswordInfo = new ModifyPasswordInfo();
      }
    });
    // 退出系统
    jButtonExit.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        System.out.println("------退出系统-----");
        System.exit(1);
      }
    });
    // 关于系统
    aboutSystem.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        System.out.println("------关于系统------");
        AboutSystem aboutSystem = new AboutSystem();
      }
    });
    // 关闭窗口监控
    mainmenu.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent arg0) {
        System.exit(1);
      }
    });
    mainmenu.setJMenuBar(menuBar1);
    mainmenu.setVisible(true);
    mainmenu.setLocation(250, 50);
    aboutSystem.addActionListener(this);
  }
  // 主函数测试
  public static void main(String[] args) {
    new MainMenuFrame();
  }
  @Override
  public void actionPerformed(ActionEvent arg0) {
  }
}

AboutSystem.java

package com.sjsq.view;
import javax.swing.*;
import java.awt.*;
public class AboutSystem extends JFrame{
  private JLabel jlabel1,jlabel2;
  private Font font;
  public AboutSystem() {
    //设置容器标题
    setTitle("关于本系统");
    //设置容器大小
    setSize(600, 450);
    //将容器显示在屏幕中央
    setLocationRelativeTo(null);
    AboutSystem();
    //点击右上角的关闭,只关闭本窗口,不影响住窗口
    setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    //设置窗口可见
    setVisible(true);
    //设置窗口大小可以改变
    setResizable(true);
  }
  private void AboutSystem() {
    //以绝对布局的方式布局
    setLayout(null);
    font = new Font("楷体", Font.BOLD, 20);
    jlabel1 = new JLabel("联系方式");
    jlabel1.setBounds(230, 50, 150, 50);
    jlabel1.setFont(font);
    jlabel2 = new JLabel("QQ:3079118617");
    jlabel2.setBounds(230, 100, 150, 50);
    jlabel2.setFont(font);
    add(jlabel1);
    add(jlabel2);
  }
  public static void main(String[] args){
    new AboutSystem();
  }
}

QueryStudentInfo.java

package com.sjsq.view;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import org.jb2011.lnf.beautyeye.ch3_button.BEButtonUI;
import com.sjsq.controller.StudentController;
import com.sjsq.controller.impl.StudentControllerImpl;
import com.sjsq.dao.StudentDao;
import com.sjsq.model.Student;
@SuppressWarnings("serial")
public class QueryStudentInfo extends JFrame implements ActionListener {
  private JScrollPane panel;
  private JButton next, previous, first, last, query;
  private JButton modifyBtn, deleteBtn, backBtn;
  private JLabel studentId;
  private JLabel studengName;
  private JLabel studentSex;
  private JLabel studentProvince;
  private JTextField studentIdContent;
  private JTextField studengNameContent;
  private JTextField studentSexContent;
  private JTextField studentProvinceContent;
  private JLabel label1, label2; // 1.显示总页数和当前页数 2.每页显示数
  private JTable table;
  public int currentPage = 1; // 当前页
  public int totalPage = 0; // 总页数
  public int totalRowCount = 0; // 总行数
  public int pageCount; // 每页显示数目
  public int column = 0;
  public int restCount; // 最后一页数目
  public Object[][] resultData; // 结果集二维数组
  // 声明下拉菜单数据
  String[] array = { "20", "30", "40", "50", "60" };
  JComboBox box = new JComboBox(array);// 将数组array放到下拉菜单中
  // JTable表信息相关变量
  public List<Student> students = Student.students;
  public String[] columnNames = { "学号", "姓名", "性别", "学院", "专业", "生日", "省份", "电话", "邮箱" };
  public DefaultTableModel model = null;// 默认的表格控制模型
  // 窗体及表的建立
  public QueryStudentInfo() {
    super("学生信息查询统计");
    this.setSize(1040, 680);
    setLocationRelativeTo(null);// 将容器显示在屏幕中央
    setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);// 点击右上角的关闭,只关闭本窗口,不影响住窗口
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    // 设置窗口不可以改变
    setResizable(false);
    JLabel queryData;
    Font font = new Font("微软雅黑", Font.CENTER_BASELINE, 10);
    studentId = new JLabel("学号");
    studentId.setBounds(100, 30, 40, 30);
    studentId.setFont(font);
    studentIdContent = new JTextField();
    studentIdContent.setBounds(145, 30, 100, 30);
    studengName = new JLabel("学生姓名");
    studengName.setBounds(270, 30, 70, 30);
    studengName.setFont(font);
    studengNameContent = new JTextField();
    studengNameContent.setBounds(341, 30, 100, 30);
    // “姓名”,“性别”,“省份”
    studentProvince = new JLabel("省份");
    studentProvince.setBounds(100, 65, 40, 30);
    studentProvince.setFont(font);
    studentProvinceContent = new JTextField();
    studentProvinceContent.setBounds(145, 65, 100, 30);
    studentSex = new JLabel("学生性别");
    studentSex.setBounds(270, 65, 70, 30);
    studentSex.setFont(font);
    studentSexContent = new JTextField();
    studentSexContent.setBounds(341, 65, 100, 30);
    query = new JButton("查询");
    query.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.lightBlue));
    query.setBounds(600, 30, 95, 30);
    // query.setFont(font);
    query.setForeground(Color.blue);
    // 设置查询图标
    //ImageIcon icon1 = new ImageIcon("src/images/query2.png");
    //query.setIcon(icon1);
    table = new JTable();
    box.setBounds(890, 105, 100, 20);
    label2 = new JLabel("每页显示条数:");
    label2.setBounds(800, 93, 120, 50);
    panel = new JScrollPane();// 设置滚动条
    panel.setViewportView(table);
    panel.setBounds(42, 136, 950, 420);
    first = new JButton("第一页");
    first.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    first.setBounds(44, 570, 90, 30);
    previous = new JButton("上一页");
    previous.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    previous.setBounds(164, 570, 90, 30);
    next = new JButton("下一页");
    next.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    next.setBounds(284, 570, 90, 30);
    last = new JButton("最后一页");
    last.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    last.setBounds(404, 570, 90, 30);
    /*modifyBtn = new JButton("修改");
    modifyBtn.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    modifyBtn.setBounds(524, 570, 90, 30);
    deleteBtn = new JButton("删除");
    deleteBtn.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.red));
    deleteBtn.setBounds(644, 570, 90, 30);
    backBtn = new JButton("关闭");
    backBtn.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.blue));
    backBtn.setBounds(764, 570, 90, 30);*/
    // 新的位置
    modifyBtn = new JButton("修改");
    modifyBtn.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    modifyBtn.setBounds(200, 570, 90, 30);
    deleteBtn = new JButton("删除");
    deleteBtn.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.red));
    deleteBtn.setBounds(400, 570, 90, 30);
    backBtn = new JButton("关闭");
    backBtn.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.blue));
    backBtn.setBounds(600, 570, 90, 30);
    /* 添加监听 */
    previous.addActionListener(this);
    next.addActionListener(this);
    first.addActionListener(this);
    last.addActionListener(this);
    query.addActionListener(this);
    // 返回
    backBtn.addMouseListener(new MouseListener() {
      @Override
      public void mouseClicked(MouseEvent e) {
        dispose();// 点击返回按钮,销毁当前窗口
      }
      @Override
      public void mouseEntered(MouseEvent e) {
      }
      @Override
      public void mouseExited(MouseEvent e) {
      }
      @Override
      public void mousePressed(MouseEvent e) {
      }
      @Override
      public void mouseReleased(MouseEvent e) {
      }
    });
    // 修改
    modifyBtn.addMouseListener(new MouseListener() {
      @Override
      public void mouseClicked(MouseEvent e) {
        int selectedRowIndex = 7;
        selectedRowIndex = table.getSelectedRow();
        if (selectedRowIndex == -1) {
          JOptionPane.showMessageDialog(null, "请在表格中选中一条数据", "消息提示", JOptionPane.WARNING_MESSAGE);
        } else {
          String sid = table.getValueAt(selectedRowIndex, 0).toString();
          String sname = table.getValueAt(selectedRowIndex, 1).toString();
          String ssex = table.getValueAt(selectedRowIndex, 2).toString();
          String scollege = table.getValueAt(selectedRowIndex, 3).toString();
          String smajor = table.getValueAt(selectedRowIndex, 4).toString();
          String sbirthday = table.getValueAt(selectedRowIndex, 5).toString();
          String sprovince = table.getValueAt(selectedRowIndex, 6).toString();
          String sphone = table.getValueAt(selectedRowIndex, 7).toString();
          String semail = table.getValueAt(selectedRowIndex, 8).toString();
          EditStudentInfo editStudentInfo = new EditStudentInfo(sid, sname, ssex, scollege, smajor, sbirthday,
              sprovince, sphone, semail);
        }
      }
      @Override
      public void mouseEntered(MouseEvent e) {
      }
      @Override
      public void mouseExited(MouseEvent e) {
      }
      @Override
      public void mousePressed(MouseEvent e) {
      }
      @Override
      public void mouseReleased(MouseEvent e) {
      }
    });
    deleteBtn.addMouseListener(new MouseListener() {
      @Override
      public void mouseClicked(MouseEvent e) {
        System.out.println("------用户点击按钮------");
        int selectedRowIndex = 7;
        selectedRowIndex = table.getSelectedRow();
        if (selectedRowIndex == -1) {
          JOptionPane.showMessageDialog(null, "请在表格中选中一条数据", "消息提示", JOptionPane.WARNING_MESSAGE);
        } else {
          String sid = table.getValueAt(selectedRowIndex, 0).toString();
          StudentController studentController = new StudentControllerImpl();
          boolean flag = studentController.deleteStudentController(sid);
          if (flag) {
            JOptionPane.showMessageDialog(null, "删除学生信息成功", "消息提示", JOptionPane.QUESTION_MESSAGE);
          } else {
            JOptionPane.showMessageDialog(null, "删除学生信息失败", "消息提示", JOptionPane.WARNING_MESSAGE);
          }
        }
      }
      @Override
      public void mouseEntered(MouseEvent e) {
      }
      @Override
      public void mouseExited(MouseEvent e) {
      }
      @Override
      public void mousePressed(MouseEvent e) {
      }
      @Override
      public void mouseReleased(MouseEvent e) {
      }
    });
    label1 = new JLabel();
    label1.setBounds(420, 400, 180, 60);
    this.getContentPane().setLayout(null);
    // 获取内容面板,再对其加入组件,显示多少页
    // this.getContentPane().add(box);
    // 显示分页条数
    //this.getContentPane().add(label2);
    // 滚动条
    this.getContentPane().add(panel);
    // 分页
    //this.getContentPane().add(previous);
    //this.getContentPane().add(next);
    //this.getContentPane().add(first);
    //this.getContentPane().add(last);
    this.getContentPane().add(label1);
    this.getContentPane().add(studentId);
    this.getContentPane().add(studentIdContent);
    this.getContentPane().add(studengName);
    this.getContentPane().add(studengNameContent);
    //this.getContentPane().add(studentSex);
    //this.getContentPane().add(studentSexContent);
    //this.getContentPane().add(studentProvince);
    //this.getContentPane().add(studentProvinceContent);
    this.getContentPane().add(modifyBtn);
    this.getContentPane().add(deleteBtn);
    this.getContentPane().add(backBtn);
    this.getContentPane().add(query);
    this.setDefaultCloseOperation(HIDE_ON_CLOSE);
    this.setLocationRelativeTo(null);
    this.setVisible(true);
    /* 从MySQL数据库中获取数据 */
    try {
      StudentDao commoditySaleDetailDao = new StudentDao();
      ResultSet rs = commoditySaleDetailDao.queryAll();
      ResultSetMetaData metaData;
      metaData = rs.getMetaData();
      int number = metaData.getColumnCount();
      while (rs.next()) {
        String sId = rs.getString(1);
        String sName = rs.getString(2);
        String sSex = rs.getString(3);
        String sCollege = rs.getString(4);
        String sMajor = rs.getString(5);
        String sBirthday = rs.getString(6);
        String sProvince = rs.getString(7);
        String sPhone = rs.getString(8);
        String sEmail = rs.getString(9);
        Student s = new Student(sId, sName, sSex, sCollege, sMajor, sBirthday, sProvince, sPhone, sEmail);
        Student.students.add(s);
      }
    } catch (SQLException ex) {
      String[] options3 = { "新建MyTable数据表", "取消" };
      int strength3 = JOptionPane.showOptionDialog(null, "表MyTable不存在!", "信息", JOptionPane.YES_OPTION,
          JOptionPane.INFORMATION_MESSAGE, null, options3, options3[0]);
      if (strength3 == javax.swing.JOptionPane.YES_OPTION) {
        System.out.println("The Table not exsits.");
      }
      if (strength3 == javax.swing.JOptionPane.INFORMATION_MESSAGE) {
        System.exit(0);
      }
    }
    /**
     * 事件监听
     */
    /* 下拉菜单事件监听 */
    box.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        String Str = (String) box.getSelectedItem();
        pageCount = Integer.parseInt(Str);
        initTable();
        System.out.println(pageCount);
      }
    });
  }
  /**
   * 获取下一页
   */
  public int getNextPage() {
    if (this.currentPage != this.totalPage) {
      return ++currentPage;
    }
    return -1;
  }
  /**
   * 获取上一页
   */
  public int getPreviousPage() {
    if (this.currentPage != 1) {
      return --currentPage;
    }
    return -1;
  }
  /**
   * 获取最后一页
   */
  public int getLastPage() {
    currentPage = totalPage;
    return currentPage;
  }
  /**
   * 获取第一页
   */
  public int getFirstPage() {
    currentPage = 1;
    return currentPage;
  }
  /**
   * 获取总页数
   *
   *
   */
  public int getTotolPage() {
    return this.totalPage;
  }
  /**
   * 获取当前页
   */
  public int getCurrentPage() {
    return this.currentPage;
  }
  /**
   * 获得原始数据集
   * 
   * @param students
   * @return String sId, String sName, String sSex, String sBirthday, String
   *         sProvince, String sHobby, String sPhone
   */
  public Object[][] getData(List<Student> students) {
    if (students.size() > 0) {
      Object[][] data = new Object[students.size()][4];
      for (int i = 0; i < students.size(); i++) {
        Student s = students.get(i);
        // 把List**的数据赋给Object数组
        Object[] a = { s.getsId(), s.getsName(), s.getsSex(), s.getsCollege(), s.getsMajor(), s.getsBirthday(),
            s.getsProvince(), s.getsPhone(), s.getsEmail() };
        // 把数组的值赋给二维数组的一行
        data[i] = a;
      }
      return data;
    }
    return null;
  }
  /**
   * 初始化结果集
   * 
   * @param data
   */
  public void initResultData(Object[][] data) {
    if (data != null) {
      String Str = (String) box.getSelectedItem();
      pageCount = Integer.parseInt(Str);
      resultData = data;// 总的结果集
      column = data[0].length;// 表的列数
      totalRowCount = data.length;// 表的长度
      totalPage = totalRowCount % pageCount == 0 ? totalRowCount / pageCount : totalRowCount / pageCount + 1;// 结果集的总页数
      restCount = totalRowCount % pageCount == 0 ? pageCount : totalRowCount % pageCount;// 最后一页的数据数
      label1.setText("总共" + totalRowCount + "记录|当前第" + currentPage + "页");
    } else {
      restCount = 0;
    }
  }
  /**
   * 获取分页数据
   * 
   * @return
   */
  public Object[][] getPageData() {
    Object[][] currentPageData = new Object[pageCount][column];// 构造每页数据集
    if (this.getCurrentPage() < this.totalPage) {// 如果当前页数小于总页数,那么每页数目应该是规定的数pageCount
      for (int i = pageCount * (this.getCurrentPage() - 1); i < pageCount * (this.getCurrentPage() - 1)
          + pageCount; i++) {
        for (int j = 0; j < column; j++) {
          // 把结果集中对应每页的每一行数据全部赋值给当前页的每一行的每一列
          currentPageData[i % pageCount][j] = resultData[i][j];
        }
      }
    } else {
      // 在动态改变数据结果集的时候,如果当前页没有数据了,则回到前一页(一般针对最后一页而言)
      if (pageCount * (this.getCurrentPage() - 1) >= totalRowCount)
        this.currentPage--;
      for (int i = pageCount * (this.getCurrentPage() - 1); i < pageCount * (this.getCurrentPage() - 1)
          + restCount; i++) {
        for (int j = 0; j < column; j++) {
          currentPageData[i % pageCount][j] = resultData[i][j];
        }
      }
    }
    return currentPageData;
  }
  /**
   * 初始化表格数据
   */
  public void initTable() {
    Object[][] data = getData(students);
    if (data != null) {
      initResultData(data);
      model = new DefaultTableModel(getPageData(), columnNames);
    } else {
      // 如果结果集中没有数据,那么就用空来代替数据集中的每一行
      initResultData(data);
      Object[][] nothing = { {}, {}, {}, {}, {} };
      model = new DefaultTableModel(nothing, columnNames);
      totalRowCount = 0;
    }
    table.setModel(model);
    table.setRowHeight(20);
    DefaultTableCellRenderer r = new DefaultTableCellRenderer();
    r.setHorizontalAlignment(JLabel.CENTER);
    table.setDefaultRenderer(Object.class, r);
  }
  /**
   * 按钮事件
   */
  public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    // String ItemName = e.getActionCommand();
    String[] data = new String[4];
    JButton button = (JButton) e.getSource();
    if (button.equals(first)) {
      int i = getFirstPage();
      if (i == -1)
        return;
    }
    if (button.equals(previous)) {
      int i = getPreviousPage();
      if (i == -1)
        return;
    }
    if (button.equals(next)) {
      int i = getNextPage();
      if (i == -1)
        return;
    }
    if (button.equals(last)) {
      int i = getLastPage();
      if (i == -1)
        return;
    }
    if (button.equals(modifyBtn)) {
    }
    if (button.equals(deleteBtn)) {
    }
    if (button.equals(backBtn)) {
      dispose();// 点击返回按钮,销毁当前窗口
    }
    if (button.equals(query)) {
      data[0] = studentIdContent.getText();
      data[1] = studengNameContent.getText();
      data[2] = studentProvinceContent.getText();
      data[3] = studentSexContent.getText();
      StudentController studentController = new StudentControllerImpl();
      ResultSet rs = null;
      rs = studentController.queryByCondition(data);
      if (rs == null) {
        JOptionPane.showMessageDialog(null, "依据该条件没有查询到相应的信息", "消息提示", JOptionPane.WARNING_MESSAGE);
        initTable();
      } else {
        try {
          ResultSetMetaData metaData;
          metaData = rs.getMetaData();
          int number = metaData.getColumnCount();
          students.clear();
          while (rs.next()) {
            String sId = rs.getString(1);
            String sName = rs.getString(2);
            String sSex = rs.getString(3);
            String sCollege = rs.getString(4);
            String sMajor = rs.getString(5);
            String sBirthday = rs.getString(6);
            String sProvince = rs.getString(7);
            String sPhone = rs.getString(8);
            String sEmail = rs.getString(9);
            Student s = new Student(sId, sName, sSex, sCollege, sMajor, sBirthday, sProvince, sPhone,
                sEmail);
            Student.students.add(s);
          }
        } catch (SQLException ex) {
          String[] options3 = { "新建MyTable数据表", "取消" };
          int strength3 = JOptionPane.showOptionDialog(null, "表MyTable不存在!", "信息", JOptionPane.YES_OPTION,
              JOptionPane.INFORMATION_MESSAGE, null, options3, options3[0]);
          if (strength3 == javax.swing.JOptionPane.YES_OPTION) {
            System.out.println("The Table not exsits.");
          }
          if (strength3 == javax.swing.JOptionPane.INFORMATION_MESSAGE) {
            System.exit(0);
          }
        }
        initTable();
      }
    }
    Object[][] currentPageData = new Object[pageCount][column];// 构造每页数据集
    if (this.getCurrentPage() == 1) {
      for (int i = pageCount * (this.getCurrentPage() - 1); i < pageCount * (this.getCurrentPage() - 1)
          + restCount; i++) {
        for (int j = 0; j < column; j++) {
          currentPageData[i % pageCount][j] = resultData[i][j];
        }
      }
    } else {
      if (this.getCurrentPage() < this.totalPage) {// 如果当前页数小于总页数,那么每页数目应该是规定的数pageCount
        for (int i = pageCount * (this.getCurrentPage() - 1); i < pageCount * (this.getCurrentPage() - 1)
            + pageCount; i++) {
          for (int j = 0; j < column; j++) {
            // 把结果集中对应每页的每一行数据全部赋值给当前页的每一行的每一列
            currentPageData[i % pageCount][j] = resultData[i][j];
          }
        }
      } else {
        // 在动态改变数据结果集的时候,如果当前页没有数据了,则回到前一页(一般针对最后一页而言)
        System.out.println(this.getCurrentPage());
        if (pageCount * (this.getCurrentPage() - 1) >= totalRowCount)
          this.currentPage--;
        for (int i = pageCount * (this.getCurrentPage() - 1); i < pageCount * (this.getCurrentPage() - 1)
            + restCount; i++) {
          for (int j = 0; j < column; j++) {
            currentPageData[i % pageCount][j] = resultData[i][j];
          }
        }
      }
    }
    DefaultTableModel model = new DefaultTableModel(currentPageData, columnNames);
    table.setModel(model);
    label1.setText("总共" + totalRowCount + "记录|当前第" + currentPage + "页");
  }
  // 测试
  public static void main(String[] args) {
    QueryStudentInfo q = new QueryStudentInfo();
  }
}


四、其他


1.其他系统实现


JavaSwing系统系列实现

Java+Swing实现斗地主游戏

Java+Swing实现图书管理系统

Java+Swing实现医院管理系统

Java+Swing实现考试管理系统

Java+Swing实现酒店管理系统

Java+Swing实现超市管理系统

Java+Swing实现网上订餐系统

Java+Swing实现电影购票系统

Java+Swing实现仓库管理系统1

Java+Swing实现仓库管理系统2

Java+Swing实现进销存管理系统

Java+Swing实现通讯录管理系统

Java+Swing实现停车场管理系统

Java+Swing实现员工工资管理系统

Java+Swing实现学生宿舍管理系统

Java+Swing实现学生选课管理系统

Java+Swing实现学生成绩管理系统

Java+Swing实现学校教材管理系统

Java+Swing实现学校教务管理系统

Java+Swing实现企业人事管理系统

Java+Swing实现电子相册管理系统

Java+Swing实现学生信息管理系统1

Java+Swing实现学生信息管理系统2

Java+Swing实现自助取款机(ATM)系统


JavaSwing+Txt系统系列实现

Java+Swing实现超市管理系统-TXT存储信息

Java+Swing实现宠物商店管理系统-TXT存储信息

Java+Swing实现自助取款机(ATM)系统-TXT存储信息


Java+JSP系统系列实现

Java+JSP实现学生图书管理系统

Java+JSP实现学生信息管理系统

Java+JSP实现用户信息管理系统


Java+Servlet+JSP系统系列实现

Java+Servlet+JSP实现航空订票系统

Java+Servlet+JSP实现新闻发布系统

Java+Servlet+JSP实现图书管理系统

Java+Servlet+JSP实现停车场管理系统

Java+Servlet+JSP实现房屋租赁管理系统

Java+Servlet+JSP实现学生选课管理系统

Java+Servlet+JSP实现宠物诊所管理系统

Java+Servlet+JSP实现学生宿舍管理系统

Java+Servlet+JSP实现学生信息管理系统

Java+Servlet+JSP实现学生成绩管理系统1

Java+Servlet+JSP实现学生成绩管理系统2


Java+SSM系统系列实现

Java+SSM+JSP实现图书管理系统

Java+SSM+JSP实现宠物商城系统

Java+SSM+JSP实现超市订单系统

Java+SSM+JSP实现网上考试系统

Java+SSM+JSP实现学生成绩管理系统

Java+SSM+JSP实现学生信息管理系统

Java+SSM+Bootstrap+Maven实现网上书城系统

Java+SSM+Bootstrap+Maven实现学校教务管理系统


Java+SSH系统系列实现

Java+SSH+Bootstrap实现在线考试系统

Java+SSH+JSP实现医院在线挂号系统


Java+Springboot系统系列实现

Java+Springboot+H-ui+Maven实现营销管理系统

Java+Springboot+Bootstrap+Maven实现网上商城系统

Java+Springboot+Bootstrap+Maven实现景区旅游管理系统


2.获取源码


点击以下链接获取源码

Java+Swing+Mysql实现学生信息管理系统源码


3.备注


如有侵权请联系我删除。


4.鸡汤


奋斗就是刚开始很难,然后慢慢很容易。堕落就是刚开始很容易,然后慢慢很难。为了梦想,冲啊!


相关文章
|
5月前
|
安全 前端开发 JavaScript
计算机java项目|SpringBoot学院个人信息管理系统
计算机java项目|SpringBoot学院个人信息管理系统
|
29天前
|
Java 关系型数据库 MySQL
基于Java的学生成绩管理系统/学生信息管理系统
基于Java的学生成绩管理系统/学生信息管理系统
36 2
|
3月前
|
安全 Java API
|
3月前
|
Java 网络安全 开发工具
新手入门Java。如何下载Eclipse、写出最基本的“Hello word”以及如何连接github并且上传项目。
新手入门Java。如何下载Eclipse、写出最基本的“Hello word”以及如何连接github并且上传项目。
57 0
|
3月前
|
SQL Java 数据库连接
【Java】Java Swing 图书管借阅管理系统(源码+论文)【独一无二】
【Java】Java Swing 图书管借阅管理系统(源码+论文)【独一无二】
138 0
|
3月前
|
存储 数据可视化 Java
【Java】Java swing 民宿管理系统 GUI(源码+可视化界面)【独一无二】
【Java】Java swing 民宿管理系统 GUI(源码+可视化界面)【独一无二】
|
3月前
|
存储 Java
【Java】Java学生信息管理系统(源码)【独一无二】
【Java】Java学生信息管理系统(源码)【独一无二】
193 0
|
5月前
|
Java 数据安全/隐私保护
利用Java图形化界面组件Swing写一个简易的登录界面
利用Java图形化界面组件Swing写一个简易的登录界面
64 1
|
4月前
|
存储 Oracle Java
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
47 0
|
4月前
|
关系型数据库 MySQL 数据库连接
解决在eclipse2021中,用mysql-connector-java-8.0.18.jar不兼容,导致无法访问数据库问题
解决在eclipse2021中,用mysql-connector-java-8.0.18.jar不兼容,导致无法访问数据库问题
107 0