比尔云BierYun--阿里云最新优惠活动
阿里云优惠码丨阿里云代金券

学生信息管理系统–(Java+MySQL实现)

学生信息管理系统–(Java+MySQL实现)http://www.bieryun.com/1113.html

基于Java swing+MySQL实现学生信息管理系统:主要实现JDBC对学生信息进行增删改查,应付一般课设足矣,分享给大家。(由于篇幅原因,代码未全部列出,如有需要留下邮箱)

1、 开发环境:jdk7+MySQL5+win7

代码结构:model-dao-view

2、 数据库设计–建库建表语句:

[sql] view plain copy

  1. CREATE DATABASE student;

[sql] view plain copy

  1. DROP TABLE IF EXISTS `admin`;
  2. CREATE TABLE `admin` (
  3.   `id` int(11) NOT NULL AUTO_INCREMENT,
  4.   `namevarchar(20) NOT NULL,
  5.   `username` varchar(20) NOT NULL,
  6.   `passwordvarchar(20) NOT NULL,
  7.   PRIMARY KEY (`id`)
  8. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
  9. LOCK TABLES `admin` WRITE;
  10. INSERT INTO `admin` VALUES (1,‘admin’,‘admin’,‘admin’);
  11. UNLOCK TABLES;
  12. DROP TABLE IF EXISTS `student`;
  13. CREATE TABLE `student` (
  14.   `id` int(11) NOT NULL AUTO_INCREMENT,
  15.   `namevarchar(20) NOT NULL,
  16.   `sno` varchar(20) NOT NULL,
  17.   `department` varchar(20) NOT NULL,
  18.   `hometown` varchar(20) NOT NULL,
  19.   `mark` varchar(20) NOT NULL,
  20.   `email` varchar(20) NOT NULL,
  21.   `tel` varchar(20) NOT NULL,
  22.   `sex` varchar(20) NOT NULL,
  23.   PRIMARY KEY (`id`)
  24. ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;
  25. LOCK TABLES `student` WRITE;
  26. INSERT INTO `student` VALUES (18,‘张三’,‘001’,‘信息科学技术学院’,‘辽宁’,’80’,‘zhangsan@163.com’,‘13888888888’,‘男’),(19,‘李四’,‘002’,‘理学院’,‘上海’,’70’,‘lisi@sina.com’,‘13812341234’,‘男’),(20,‘王五’,‘003’,‘外国语学院’,‘北京’,’88’,‘wangwu@126.com’,‘13698765432’,‘女’);
  27. UNLOCK TABLES;

3、model–管理员、学生

[java] view plain copy

  1. /**
  2.  * 项目名:student
  3.  * 修改历史:
  4.  * 作者: MZ
  5.  * 创建时间: 2016年1月6日-上午9:42:48
  6.  */
  7. package com.student.model;
  8. /**
  9.  * 模块说明:admin
  10.  * 
  11.  */
  12. public class Admin {
  13.     private int id;
  14.     private String name;
  15.     private String username;
  16.     private String password;
  17.     public String getName() {
  18.         return name;
  19.     }
  20.     public void setName(String name) {
  21.         this.name = name;
  22.     }
  23.     public int getId() {
  24.         return id;
  25.     }
  26.     public void setId(int id) {
  27.         this.id = id;
  28.     }
  29.     public String getUsername() {
  30.         return username;
  31.     }
  32.     public void setUsername(String username) {
  33.         this.username = username;
  34.     }
  35.     public String getPassword() {
  36.         return password;
  37.     }
  38.     public void setPassword(String password) {
  39.         this.password = password;
  40.     }
  41. }

 

[java] view plain copy

  1. /**
  2.  * 项目名:student
  3.  * 修改历史:
  4.  * 作者: MZ
  5.  * 创建时间: 2016年1月6日-上午9:42:36
  6.  */
  7. package com.student.model;
  8. /**
  9.  * 模块说明: 学生
  10.  * 
  11.  */
  12. public class Student {
  13.     private int id;
  14.     private String sno;// 学号
  15.     private String name;
  16.     private String sex;
  17.     private String department;// 院系
  18.     private String homeTown;// 籍贯
  19.     private String mark;// 学分
  20.     private String email;
  21.     private String tel;// 联系方式
  22.     public int getId() {
  23.         return id;
  24.     }
  25.     public void setId(int id) {
  26.         this.id = id;
  27.     }
  28.     public String getSno() {
  29.         return sno;
  30.     }
  31.     public void setSno(String sno) {
  32.         this.sno = sno;
  33.     }
  34.     public String getName() {
  35.         return name;
  36.     }
  37.     public void setName(String name) {
  38.         this.name = name;
  39.     }
  40.     public String getSex() {
  41.         return sex;
  42.     }
  43.     public void setSex(String sex) {
  44.         this.sex = sex;
  45.     }
  46.     public String getDepartment() {
  47.         return department;
  48.     }
  49.     public void setDepartment(String department) {
  50.         this.department = department;
  51.     }
  52.     public String getHomeTown() {
  53.         return homeTown;
  54.     }
  55.     public void setHomeTown(String homeTown) {
  56.         this.homeTown = homeTown;
  57.     }
  58.     public String getMark() {
  59.         return mark;
  60.     }
  61.     public void setMark(String mark) {
  62.         this.mark = mark;
  63.     }
  64.     public String getEmail() {
  65.         return email;
  66.     }
  67.     public void setEmail(String email) {
  68.         this.email = email;
  69.     }
  70.     public String getTel() {
  71.         return tel;
  72.     }
  73.     public void setTel(String tel) {
  74.         this.tel = tel;
  75.     }
  76. }

4、 工具类DBUtil(对jdbc进行封装)

[java] view plain copy

  1. /**
  2.  * 项目名:student
  3.  * 修改历史:
  4.  * 作者: MZ
  5.  * 创建时间: 2016年1月6日-上午9:43:21
  6.  */
  7. package com.student.util;
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.PreparedStatement;
  11. import java.sql.ResultSet;
  12. import java.sql.SQLException;
  13. import com.student.AppConstants;
  14. /**
  15.  * 模块说明:数据库工具类
  16.  * 
  17.  */
  18. public class DBUtil {
  19.     private static DBUtil db;
  20.     private Connection conn;
  21.     private PreparedStatement ps;
  22.     private ResultSet rs;
  23.     private DBUtil() {
  24.     }
  25.     public static DBUtil getDBUtil() {
  26.         if (db == null) {
  27.             db = new DBUtil();
  28.         }
  29.         return db;
  30.     }
  31.     public int executeUpdate(String sql) {
  32.         int result = –1;
  33.         if (getConn() == null) {
  34.             return result;
  35.         }
  36.         try {
  37.             ps = conn.prepareStatement(sql);
  38.             result = ps.executeUpdate();
  39.         } catch (SQLException e) {
  40.             e.printStackTrace();
  41.         }
  42.         return result;
  43.     }
  44.     public int executeUpdate(String sql, Object[] obj) {
  45.         int result = –1;
  46.         if (getConn() == null) {
  47.             return result;
  48.         }
  49.         try {
  50.             ps = conn.prepareStatement(sql);
  51.             for (int i = 0; i < obj.length; i++) {
  52.                 ps.setObject(i + 1, obj[i]);
  53.             }
  54.             result = ps.executeUpdate();
  55.             close();
  56.         } catch (SQLException e) {
  57.             e.printStackTrace();
  58.         }
  59.         return result;
  60.     }
  61.     public ResultSet executeQuery(String sql) {
  62.         if (getConn() == null) {
  63.             return null;
  64.         }
  65.         try {
  66.             ps = conn.prepareStatement(sql);
  67.             rs = ps.executeQuery();
  68.         } catch (SQLException e) {
  69.             e.printStackTrace();
  70.         }
  71.         return rs;
  72.     }
  73.     public ResultSet executeQuery(String sql, Object[] obj) {
  74.         if (getConn() == null) {
  75.             return null;
  76.         }
  77.         try {
  78.             ps = conn.prepareStatement(sql);
  79.             for (int i = 0; i < obj.length; i++) {
  80.                 ps.setObject(i + 1, obj[i]);
  81.             }
  82.             rs = ps.executeQuery();
  83.         } catch (SQLException e) {
  84.             e.printStackTrace();
  85.         }
  86.         return rs;
  87.     }
  88.     private Connection getConn() {
  89.         try {
  90.             if (conn == null || conn.isClosed()) {
  91.                 Class.forName(AppConstants.JDBC_DRIVER);
  92.                 conn = DriverManager.getConnection(AppConstants.JDBC_URL, AppConstants.JDBC_USERNAME,
  93.                         AppConstants.JDBC_PASSWORD);
  94.             }
  95.         } catch (ClassNotFoundException e) {
  96.             System.out.println(“jdbc driver is not found.”);
  97.             e.printStackTrace();
  98.         } catch (SQLException e) {
  99.             e.printStackTrace();
  100.         }
  101.         return conn;
  102.     }
  103.     public void close() {
  104.         try {
  105.             if (rs != null) {
  106.                 rs.close();
  107.             }
  108.             if (ps != null) {
  109.                 ps.close();
  110.             }
  111.             if (conn != null) {
  112.                 conn.close();
  113.             }
  114.         } catch (SQLException e) {
  115.             e.printStackTrace();
  116.         }
  117.     }
  118. }

5、 dao:主要调用DBUtil操作相应的model–增删改查

BaseDAO.java

[java] view plain copy

  1. /**
  2.  * 项目名:student
  3.  * 修改历史:
  4.  * 作者: MZ
  5.  * 创建时间: 2016年1月6日-上午10:04:37
  6.  */
  7. package com.student.base;
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. import com.student.DAO;
  11. import com.student.dao.AdminDAO;
  12. import com.student.dao.StudentDAO;
  13. import com.student.util.DBUtil;
  14. /**
  15.  * 模块说明: DAO基类
  16.  * 
  17.  */
  18. public abstract class BaseDAO {
  19.     protected final DBUtil db = DBUtil.getDBUtil();
  20.     protected ResultSet rs;
  21.     private static BaseDAO baseDAO;
  22.     public BaseDAO() {
  23.         init();
  24.     }
  25.     private void init() {
  26.         // buildAbilityDAO();
  27.     }
  28.     // protected abstract void buildAbilityDAO();
  29.     public static synchronized BaseDAO getAbilityDAO(DAO dao) {
  30.         switch (dao) {
  31.         case AdminDAO:
  32.             if (baseDAO == null || baseDAO.getClass() != AdminDAO.class) {
  33.                 baseDAO = AdminDAO.getInstance();
  34.             }
  35.             break;
  36.         case StudentDAO:
  37.             if (baseDAO == null || baseDAO.getClass() != StudentDAO.class) {
  38.                 baseDAO = StudentDAO.getInstance();
  39.             }
  40.             break;
  41.         default:
  42.             break;
  43.         }
  44.         return baseDAO;
  45.     }
  46.     protected void destroy() {
  47.         try {
  48.             if (rs != null) {
  49.                 rs.close();
  50.             }
  51.         } catch (SQLException se) {
  52.             se.printStackTrace();
  53.         } finally {
  54.             db.close();
  55.         }
  56.     }
  57. }

AdminDAO.java

[java] view plain copy

  1. /**
  2.  * 项目名:student
  3.  * 修改历史:
  4.  * 作者: MZ
  5.  * 创建时间: 2016年1月6日-上午9:59:58
  6.  */
  7. package com.student.dao;
  8. import java.sql.SQLException;
  9. import com.student.base.BaseDAO;
  10. /**
  11.  * 模块说明: 管理员增删改查
  12.  * 
  13.  */
  14. public class AdminDAO extends BaseDAO {
  15.     private static AdminDAO ad = null;
  16.     public static synchronized AdminDAO getInstance() {
  17.         if (ad == null) {
  18.             ad = new AdminDAO();
  19.         }
  20.         return ad;
  21.     }
  22.     public boolean queryForLogin(String username, String password) {
  23.         boolean result = false;
  24.         if (username.length() == 0 || password.length() == 0) {
  25.             return result;
  26.         }
  27.         String sql = “select * from admin where username=? and password=?”;
  28.         String[] param = { username, password };
  29.         rs = db.executeQuery(sql, param);
  30.         try {
  31.             if (rs.next()) {
  32.                 result = true;
  33.             }
  34.         } catch (SQLException e) {
  35.             e.printStackTrace();
  36.         } finally {
  37.             destroy();
  38.         }
  39.         return result;
  40.     }
  41. }

StudentDAO.java

[java] view plain copy

  1. /**
  2.  * 项目名:student
  3.  * 修改历史:
  4.  * 作者: MZ
  5.  * 创建时间: 2016年1月6日-上午10:00:07
  6.  */
  7. package com.student.dao;
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. import com.student.base.BaseDAO;
  13. import com.student.model.Student;
  14. /**
  15.  * 模块说明: 学生增删改查
  16.  * 
  17.  */
  18. public class StudentDAO extends BaseDAO {
  19.     private final int fieldNum = 9;
  20.     private final int showNum = 15;
  21.     private static StudentDAO sd = null;
  22.     public static synchronized StudentDAO getInstance() {
  23.         if (sd == null) {
  24.             sd = new StudentDAO();
  25.         }
  26.         return sd;
  27.     }
  28.     // update
  29.     public boolean update(Student stu) {
  30.         boolean result = false;
  31.         if (stu == null) {
  32.             return result;
  33.         }
  34.         try {
  35.             // check
  36.             if (queryBySno(stu.getSno()) == 0) {
  37.                 return result;
  38.             }
  39.             // update
  40.             String sql = “update student set sex=?,department=?,email=?,tel=?,hometown=?,mark=? where name=? and sno=?”;
  41.             String[] param = { stu.getSex(), stu.getDepartment(), stu.getEmail(), stu.getTel(), stu.getHomeTown(),
  42.                     stu.getMark(), stu.getName(), stu.getSno() };
  43.             int rowCount = db.executeUpdate(sql, param);
  44.             if (rowCount == 1) {
  45.                 result = true;
  46.             }
  47.         } catch (SQLException se) {
  48.             se.printStackTrace();
  49.         } finally {
  50.             destroy();
  51.         }
  52.         return result;
  53.     }
  54.     // delete
  55.     public boolean delete(Student stu) {
  56.         boolean result = false;
  57.         if (stu == null) {
  58.             return result;
  59.         }
  60.         String sql = “delete from student where name=? and sno=?”;
  61.         String[] param = { stu.getName(), stu.getSno() };
  62.         int rowCount = db.executeUpdate(sql, param);
  63.         if (rowCount == 1) {
  64.             result = true;
  65.         }
  66.         destroy();
  67.         return result;
  68.     }
  69.     // add
  70.     public boolean add(Student stu) {
  71.         boolean result = false;
  72.         if (stu == null) {
  73.             return result;
  74.         }
  75.         try {
  76.             // check
  77.             if (queryBySno(stu.getSno()) == 1) {
  78.                 return result;
  79.             }
  80.             // insert
  81.             String sql = “insert into student(name,sno,sex,department,hometown,mark,email,tel) values(?,?,?,?,?,?,?,?)”;
  82.             String[] param = { stu.getName(), stu.getSno(), stu.getSex(), stu.getDepartment(), stu.getHomeTown(),
  83.                     stu.getMark(), stu.getEmail(), stu.getTel() };
  84.             if (db.executeUpdate(sql, param) == 1) {
  85.                 result = true;
  86.             }
  87.         } catch (SQLException se) {
  88.             se.printStackTrace();
  89.         } finally {
  90.             destroy();
  91.         }
  92.         return result;
  93.     }
  94.     // query by name
  95.     public String[][] queryByName(String name) {
  96.         String[][] result = null;
  97.         if (name.length() < 0) {
  98.             return result;
  99.         }
  100.         List<Student> stus = new ArrayList<Student>();
  101.         int i = 0;
  102.         String sql = “select * from student where name like ?”;
  103.         String[] param = { “%” + name + “%” };
  104.         rs = db.executeQuery(sql, param);
  105.         try {
  106.             while (rs.next()) {
  107.                 buildList(rs, stus, i);
  108.                 i++;
  109.             }
  110.             if (stus.size() > 0) {
  111.                 result = new String[stus.size()][fieldNum];
  112.                 for (int j = 0; j < stus.size(); j++) {
  113.                     buildResult(result, stus, j);
  114.                 }
  115.             }
  116.         } catch (SQLException se) {
  117.             se.printStackTrace();
  118.         } finally {
  119.             destroy();
  120.         }
  121.         return result;
  122.     }
  123.     // query
  124.     public String[][] list(int pageNum) {
  125.         String[][] result = null;
  126.         if (pageNum < 1) {
  127.             return result;
  128.         }
  129.         List<Student> stus = new ArrayList<Student>();
  130.         int i = 0;
  131.         int beginNum = (pageNum – 1) * showNum;
  132.         String sql = “select * from student limit ?,?”;
  133.         Integer[] param = { beginNum, showNum };
  134.         rs = db.executeQuery(sql, param);
  135.         try {
  136.             while (rs.next()) {
  137.                 buildList(rs, stus, i);
  138.                 i++;
  139.             }
  140.             if (stus.size() > 0) {
  141.                 result = new String[stus.size()][fieldNum];
  142.                 for (int j = 0; j < stus.size(); j++) {
  143.                     buildResult(result, stus, j);
  144.                 }
  145.             }
  146.         } catch (SQLException se) {
  147.             se.printStackTrace();
  148.         } finally {
  149.             destroy();
  150.         }
  151.         return result;
  152.     }
  153.     // 将rs记录添加到list中
  154.     private void buildList(ResultSet rs, List<Student> list, int i) throws SQLException {
  155.         Student stu = new Student();
  156.         stu.setId(i + 1);
  157.         stu.setName(rs.getString(“name”));
  158.         stu.setDepartment(rs.getString(“department”));
  159.         stu.setEmail(rs.getString(“email”));
  160.         stu.setHomeTown(rs.getString(“hometown”));
  161.         stu.setMark(rs.getString(“mark”));
  162.         stu.setSex(rs.getString(“sex”));
  163.         stu.setSno(rs.getString(“sno”));
  164.         stu.setTel(rs.getString(“tel”));
  165.         list.add(stu);
  166.     }
  167.     // 将list中记录添加到二维数组中
  168.     private void buildResult(String[][] result, List<Student> stus, int j) {
  169.         Student stu = stus.get(j);
  170.         result[j][0] = String.valueOf(stu.getId());
  171.         result[j][1] = stu.getName();
  172.         result[j][2] = stu.getSno();
  173.         result[j][3] = stu.getSex();
  174.         result[j][4] = stu.getDepartment();
  175.         result[j][5] = stu.getHomeTown();
  176.         result[j][6] = stu.getMark();
  177.         result[j][7] = stu.getEmail();
  178.         result[j][8] = stu.getTel();
  179.     }
  180.     // query by sno
  181.     private int queryBySno(String sno) throws SQLException {
  182.         int result = 0;
  183.         if (“”.equals(sno) || sno == null) {
  184.             return result;
  185.         }
  186.         String checkSql = “select * from student where sno=?”;
  187.         String[] checkParam = { sno };
  188.         rs = db.executeQuery(checkSql, checkParam);
  189.         if (rs.next()) {
  190.             result = 1;
  191.         }
  192.         return result;
  193.     }
  194. }

6、 view:与用户交互的界面(包括LoginView.java、MainView.java、AddView.java、DeleteView.java、UpdateView.java),主要使用DAO提供的接口,由于篇幅原因,仅列出MainView即首页。

[java] view plain copy

  1. /**
  2.  * 项目名:student
  3.  * 修改历史:
  4.  * 作者: MZ
  5.  * 创建时间: 2016年1月6日-下午1:37:39
  6.  */
  7. package com.student.view;
  8. import java.awt.BorderLayout;
  9. import java.awt.GridLayout;
  10. import java.awt.event.ActionEvent;
  11. import java.awt.event.ActionListener;
  12. import java.awt.event.KeyAdapter;
  13. import java.awt.event.KeyEvent;
  14. import javax.swing.JButton;
  15. import javax.swing.JFrame;
  16. import javax.swing.JLabel;
  17. import javax.swing.JPanel;
  18. import javax.swing.JScrollPane;
  19. import javax.swing.JTable;
  20. import javax.swing.JTextField;
  21. import javax.swing.table.DefaultTableCellRenderer;
  22. import javax.swing.table.DefaultTableModel;
  23. import javax.swing.table.TableColumn;
  24. import com.student.AppConstants;
  25. import com.student.DAO;
  26. import com.student.base.BaseDAO;
  27. import com.student.dao.StudentDAO;
  28. /**
  29.  * 模块说明: 首页
  30.  * 
  31.  */
  32. public class MainView extends JFrame {
  33.     private static final long serialVersionUID = 5870864087464173884L;
  34.     private final int maxPageNum = 99;
  35.     private JPanel jPanelNorth, jPanelSouth, jPanelCenter;
  36.     private JButton jButtonFirst, jButtonLast, jButtonNext, jButtonPre, jButtonAdd, jButtonDelete, jButtonUpdate,
  37.             jButtonFind;
  38.     private JLabel currPageNumJLabel;
  39.     private JTextField condition;
  40.     public static JTable jTable;
  41.     private JScrollPane jScrollPane;
  42.     private DefaultTableModel myTableModel;
  43.     public static String[] column = { “id”, AppConstants.STUDENT_NAME, AppConstants.STUDENT_SNO,
  44.             AppConstants.STUDENT_SEX, AppConstants.STUDENT_DEPARTMETN, AppConstants.STUDENT_HOMETOWN,
  45.             AppConstants.STUDENT_MARK, AppConstants.STUDENT_EMAIL, AppConstants.STUDENT_TEL };
  46.     public static int currPageNum = 1;
  47.     public MainView() {
  48.         init();
  49.     }
  50.     private void init() {
  51.         setTitle(AppConstants.MAINVIEW_TITLE);
  52.         // north panel
  53.         jPanelNorth = new JPanel();
  54.         jPanelNorth.setLayout(new GridLayout(15));
  55.         condition = new JTextField(AppConstants.PARAM_FIND_CONDITION);
  56.         condition.addKeyListener(new FindListener());
  57.         jPanelNorth.add(condition);
  58.         // query by name
  59.         jButtonFind = new JButton(AppConstants.PARAM_FIND);
  60.         jButtonFind.addActionListener(new ActionListener() {
  61.             @Override
  62.             public void actionPerformed(ActionEvent e) {
  63.                 find();
  64.             }
  65.         });
  66.         jButtonFind.addKeyListener(new FindListener());
  67.         // add
  68.         jPanelNorth.add(jButtonFind);
  69.         jButtonAdd = new JButton(AppConstants.PARAM_ADD);
  70.         jButtonAdd.addActionListener(new ActionListener() {
  71.             @Override
  72.             public void actionPerformed(ActionEvent e) {
  73.                 new AddView();
  74.             }
  75.         });
  76.         jPanelNorth.add(jButtonAdd);
  77.         // delete
  78.         jButtonDelete = new JButton(AppConstants.PARAM_DELETE);
  79.         jButtonDelete.addActionListener(new ActionListener() {
  80.             @Override
  81.             public void actionPerformed(ActionEvent e) {
  82.                 new DeleteView();
  83.             }
  84.         });
  85.         jPanelNorth.add(jButtonDelete);
  86.         // update
  87.         jButtonUpdate = new JButton(AppConstants.PARAM_UPDATE);
  88.         jButtonUpdate.addActionListener(new ActionListener() {
  89.             @Override
  90.             public void actionPerformed(ActionEvent e) {
  91.                 new UpdateView();
  92.             }
  93.         });
  94.         jPanelNorth.add(jButtonUpdate);
  95.         // center panel
  96.         jPanelCenter = new JPanel();
  97.         jPanelCenter.setLayout(new GridLayout(11));
  98.         // init jTable
  99.         String[][] result = ((StudentDAO) BaseDAO.getAbilityDAO(DAO.StudentDAO)).list(currPageNum);
  100.         myTableModel = new DefaultTableModel(result, column);
  101.         jTable = new JTable(myTableModel);
  102.         DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
  103.         cr.setHorizontalAlignment(JLabel.CENTER);
  104.         jTable.setDefaultRenderer(Object.class, cr);
  105.         initJTable(jTable, result);
  106.         jScrollPane = new JScrollPane(jTable);
  107.         jPanelCenter.add(jScrollPane);
  108.         // south panel
  109.         jPanelSouth = new JPanel();
  110.         jPanelSouth.setLayout(new GridLayout(15));
  111.         jButtonFirst = new JButton(AppConstants.MAINVIEW_FIRST);
  112.         jButtonFirst.addActionListener(new ActionListener() {
  113.             @Override
  114.             public void actionPerformed(ActionEvent e) {
  115.                 currPageNum = 1;
  116.                 String[][] result = ((StudentDAO) BaseDAO.getAbilityDAO(DAO.StudentDAO)).list(currPageNum);
  117.                 initJTable(jTable, result);
  118.                 currPageNumJLabel.setText(AppConstants.MAINVIEW_PAGENUM_JLABEL_DI + currPageNum
  119.                         + AppConstants.MAINVIEW_PAGENUM_JLABEL_YE);
  120.             }
  121.         });
  122.         jButtonPre = new JButton(AppConstants.MAINVIEW_PRE);
  123.         jButtonPre.addActionListener(new ActionListener() {
  124.             @Override
  125.             public void actionPerformed(ActionEvent e) {
  126.                 currPageNum–;
  127.                 if (currPageNum <= 0) {
  128.                     currPageNum = 1;
  129.                 }
  130.                 String[][] result = ((StudentDAO) BaseDAO.getAbilityDAO(DAO.StudentDAO)).list(currPageNum);
  131.                 initJTable(jTable, result);
  132.                 currPageNumJLabel.setText(AppConstants.MAINVIEW_PAGENUM_JLABEL_DI + currPageNum
  133.                         + AppConstants.MAINVIEW_PAGENUM_JLABEL_YE);
  134.             }
  135.         });
  136.         jButtonNext = new JButton(AppConstants.MAINVIEW_NEXT);
  137.         jButtonNext.addActionListener(new ActionListener() {
  138.             @Override
  139.             public void actionPerformed(ActionEvent e) {
  140.                 currPageNum++;
  141.                 if (currPageNum > maxPageNum) {
  142.                     currPageNum = maxPageNum;
  143.                 }
  144.                 String[][] result = ((StudentDAO) BaseDAO.getAbilityDAO(DAO.StudentDAO)).list(currPageNum);
  145.                 initJTable(jTable, result);
  146.                 currPageNumJLabel.setText(AppConstants.MAINVIEW_PAGENUM_JLABEL_DI + currPageNum
  147.                         + AppConstants.MAINVIEW_PAGENUM_JLABEL_YE);
  148.             }
  149.         });
  150.         jButtonLast = new JButton(AppConstants.MAINVIEW_LAST);
  151.         jButtonLast.addActionListener(new ActionListener() {
  152.             @Override
  153.             public void actionPerformed(ActionEvent e) {
  154.                 currPageNum = maxPageNum;
  155.                 String[][] result = ((StudentDAO) BaseDAO.getAbilityDAO(DAO.StudentDAO)).list(currPageNum);
  156.                 initJTable(jTable, result);
  157.                 currPageNumJLabel.setText(AppConstants.MAINVIEW_PAGENUM_JLABEL_DI + currPageNum
  158.                         + AppConstants.MAINVIEW_PAGENUM_JLABEL_YE);
  159.             }
  160.         });
  161.         currPageNumJLabel = new JLabel(
  162.                 AppConstants.MAINVIEW_PAGENUM_JLABEL_DI + currPageNum + AppConstants.MAINVIEW_PAGENUM_JLABEL_YE);
  163.         currPageNumJLabel.setHorizontalAlignment(JLabel.CENTER);
  164.         jPanelSouth.add(jButtonFirst);
  165.         jPanelSouth.add(jButtonPre);
  166.         jPanelSouth.add(currPageNumJLabel);
  167.         jPanelSouth.add(jButtonNext);
  168.         jPanelSouth.add(jButtonLast);
  169.         this.add(jPanelNorth, BorderLayout.NORTH);
  170.         this.add(jPanelCenter, BorderLayout.CENTER);
  171.         this.add(jPanelSouth, BorderLayout.SOUTH);
  172.         setBounds(400200750340);
  173.         setResizable(false);
  174.         setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  175.         setVisible(true);
  176.     }
  177.     public static void initJTable(JTable jTable, String[][] result) {
  178.         ((DefaultTableModel) jTable.getModel()).setDataVector(result, column);
  179.         jTable.setRowHeight(20);
  180.         TableColumn firsetColumn = jTable.getColumnModel().getColumn(0);
  181.         firsetColumn.setPreferredWidth(30);
  182.         firsetColumn.setMaxWidth(30);
  183.         firsetColumn.setMinWidth(30);
  184.         TableColumn secondColumn = jTable.getColumnModel().getColumn(1);
  185.         secondColumn.setPreferredWidth(60);
  186.         secondColumn.setMaxWidth(60);
  187.         secondColumn.setMinWidth(60);
  188.         TableColumn thirdColumn = jTable.getColumnModel().getColumn(2);
  189.         thirdColumn.setPreferredWidth(90);
  190.         thirdColumn.setMaxWidth(90);
  191.         thirdColumn.setMinWidth(90);
  192.         TableColumn fourthColumn = jTable.getColumnModel().getColumn(3);
  193.         fourthColumn.setPreferredWidth(30);
  194.         fourthColumn.setMaxWidth(30);
  195.         fourthColumn.setMinWidth(30);
  196.         TableColumn seventhColumn = jTable.getColumnModel().getColumn(6);
  197.         seventhColumn.setPreferredWidth(30);
  198.         seventhColumn.setMaxWidth(30);
  199.         seventhColumn.setMinWidth(30);
  200.         TableColumn ninthColumn = jTable.getColumnModel().getColumn(8);
  201.         ninthColumn.setPreferredWidth(90);
  202.         ninthColumn.setMaxWidth(90);
  203.         ninthColumn.setMinWidth(90);
  204.     }
  205.     private class FindListener extends KeyAdapter {
  206.         @Override
  207.         public void keyPressed(KeyEvent e) {
  208.             if (e.getKeyCode() == KeyEvent.VK_ENTER) {
  209.                 find();
  210.             }
  211.         }
  212.     }
  213.     private void find() {
  214.         currPageNum = 0;
  215.         String param = condition.getText();
  216.         if (“”.equals(param) || param == null) {
  217.             initJTable(MainView.jTable, null);
  218.             currPageNumJLabel.setText(AppConstants.MAINVIEW_FIND_JLABEL);
  219.             return;
  220.         }
  221.         String[][] result = ((StudentDAO) BaseDAO.getAbilityDAO(DAO.StudentDAO)).queryByName(param);
  222.         condition.setText(“”);
  223.         initJTable(MainView.jTable, result);
  224.         currPageNumJLabel.setText(AppConstants.MAINVIEW_FIND_JLABEL);
  225.     }
  226. }
未经允许不得转载:比尔云 » 学生信息管理系统–(Java+MySQL实现)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

强烈推荐

高性能SSD云服务器ECS抗攻击,高可用云数据库RDS