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

序员代码面试揭秘    
学生信息管理系统--(Java+MySQL实现)
标签: Javamysqljdbcswing信息系统
  175人阅读  评论(7)  收藏  举报
  分类:
 
java(15) 

基于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.   
  10. LOCK TABLES `admin` WRITE;  
  11. INSERT INTO `admin` VALUES (1,'admin','admin','admin');  
  12. UNLOCK TABLES;  
  13.   
  14. DROP TABLE IF EXISTS `student`;  
  15. CREATE TABLE `student` (  
  16.   `id` int(11) NOT NULL AUTO_INCREMENT,  
  17.   `namevarchar(20) NOT NULL,  
  18.   `sno` varchar(20) NOT NULL,  
  19.   `department` varchar(20) NOT NULL,  
  20.   `hometown` varchar(20) NOT NULL,  
  21.   `mark` varchar(20) NOT NULL,  
  22.   `email` varchar(20) NOT NULL,  
  23.   `tel` varchar(20) NOT NULL,  
  24.   `sex` varchar(20) NOT NULL,  
  25.   PRIMARY KEY (`id`)  
  26. ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;  
  27.   
  28. LOCK TABLES `student` WRITE;  
  29. INSERT INTO `student` VALUES (18,'张三','001','信息科学技术学院','辽宁','80','[email protected]','13888888888','男'),(19,'李四','002','理学院','上海','70','[email protected]','13812341234','男'),(20,'王五','003','外国语学院','北京','88','[email protected]','13698765432','女');  
  30. 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. /** 
  10.  * 模块说明:admin 
  11.  *  
  12.  */  
  13. public class Admin {  
  14.     private int id;  
  15.     private String name;  
  16.     private String username;  
  17.     private String password;  
  18.   
  19.     public String getName() {  
  20.         return name;  
  21.     }  
  22.   
  23.     public void setName(String name) {  
  24.         this.name = name;  
  25.     }  
  26.   
  27.     public int getId() {  
  28.         return id;  
  29.     }  
  30.   
  31.     public void setId(int id) {  
  32.         this.id = id;  
  33.     }  
  34.   
  35.     public String getUsername() {  
  36.         return username;  
  37.     }  
  38.   
  39.     public void setUsername(String username) {  
  40.         this.username = username;  
  41.     }  
  42.   
  43.     public String getPassword() {  
  44.         return password;  
  45.     }  
  46.   
  47.     public void setPassword(String password) {  
  48.         this.password = password;  
  49.     }  
  50.   
  51. }  

[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.  */  
  13. public class Student {  
  14.     private int id;  
  15.     private String sno;// 学号  
  16.     private String name;  
  17.     private String sex;  
  18.     private String department;// 院系  
  19.     private String homeTown;// 籍贯  
  20.     private String mark;// 学分  
  21.     private String email;  
  22.     private String tel;// 联系方式  
  23.   
  24.     public int getId() {  
  25.         return id;  
  26.     }  
  27.   
  28.     public void setId(int id) {  
  29.         this.id = id;  
  30.     }  
  31.   
  32.     public String getSno() {  
  33.         return sno;  
  34.     }  
  35.   
  36.     public void setSno(String sno) {  
  37.         this.sno = sno;  
  38.     }  
  39.   
  40.     public String getName() {  
  41.         return name;  
  42.     }  
  43.   
  44.     public void setName(String name) {  
  45.         this.name = name;  
  46.     }  
  47.   
  48.     public String getSex() {  
  49.         return sex;  
  50.     }  
  51.   
  52.     public void setSex(String sex) {  
  53.         this.sex = sex;  
  54.     }  
  55.   
  56.     public String getDepartment() {  
  57.         return department;  
  58.     }  
  59.   
  60.     public void setDepartment(String department) {  
  61.         this.department = department;  
  62.     }  
  63.   
  64.     public String getHomeTown() {  
  65.         return homeTown;  
  66.     }  
  67.   
  68.     public void setHomeTown(String homeTown) {  
  69.         this.homeTown = homeTown;  
  70.     }  
  71.   
  72.     public String getMark() {  
  73.         return mark;  
  74.     }  
  75.   
  76.     public void setMark(String mark) {  
  77.         this.mark = mark;  
  78.     }  
  79.   
  80.     public String getEmail() {  
  81.         return email;  
  82.     }  
  83.   
  84.     public void setEmail(String email) {  
  85.         this.email = email;  
  86.     }  
  87.   
  88.     public String getTel() {  
  89.         return tel;  
  90.     }  
  91.   
  92.     public void setTel(String tel) {  
  93.         this.tel = tel;  
  94.     }  
  95.   
  96. }  

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

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.   
  9. import java.sql.ResultSet;  
  10. import java.sql.SQLException;  
  11.   
  12. import com.student.DAO;  
  13. import com.student.dao.AdminDAO;  
  14. import com.student.dao.StudentDAO;  
  15. import com.student.util.DBUtil;  
  16.   
  17. /** 
  18.  * 模块说明: DAO基类 
  19.  *  
  20.  */  
  21. public abstract class BaseDAO {  
  22.     protected final DBUtil db = DBUtil.getDBUtil();  
  23.     protected ResultSet rs;  
  24.     private static BaseDAO baseDAO;  
  25.   
  26.     public BaseDAO() {  
  27.         init();  
  28.     }  
  29.   
  30.     private void init() {  
  31.         // buildAbilityDAO();  
  32.     }  
  33.   
  34.     // protected abstract void buildAbilityDAO();  
  35.   
  36.     public static synchronized BaseDAO getAbilityDAO(DAO dao) {  
  37.         switch (dao) {  
  38.         case AdminDAO:  
  39.             if (baseDAO == null || baseDAO.getClass() != AdminDAO.class) {  
  40.                 baseDAO = AdminDAO.getInstance();  
  41.             }  
  42.             break;  
  43.         case StudentDAO:  
  44.             if (baseDAO == null || baseDAO.getClass() != StudentDAO.class) {  
  45.                 baseDAO = StudentDAO.getInstance();  
  46.             }  
  47.             break;  
  48.         default:  
  49.             break;  
  50.         }  
  51.         return baseDAO;  
  52.     }  
  53.   
  54.     protected void destroy() {  
  55.         try {  
  56.             if (rs != null) {  
  57.                 rs.close();  
  58.             }  
  59.         } catch (SQLException se) {  
  60.             se.printStackTrace();  
  61.         } finally {  
  62.             db.close();  
  63.         }  
  64.     }  
  65. }  

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.   
  9. import java.sql.SQLException;  
  10.   
  11. import com.student.base.BaseDAO;  
  12.   
  13. /** 
  14.  * 模块说明: 管理员增删改查 
  15.  *  
  16.  */  
  17. public class AdminDAO extends BaseDAO {  
  18.   
  19.     private static AdminDAO ad = null;  
  20.   
  21.     public static synchronized AdminDAO getInstance() {  
  22.         if (ad == null) {  
  23.             ad = new AdminDAO();  
  24.         }  
  25.         return ad;  
  26.     }  
  27.   
  28.     public boolean queryForLogin(String username, String password) {  
  29.         boolean result = false;  
  30.         if (username.length() == 0 || password.length() == 0) {  
  31.             return result;  
  32.         }  
  33.         String sql = "select * from admin where username=? and password=?";  
  34.         String[] param = { username, password };  
  35.         rs = db.executeQuery(sql, param);  
  36.         try {  
  37.             if (rs.next()) {  
  38.                 result = true;  
  39.             }  
  40.         } catch (SQLException e) {  
  41.             e.printStackTrace();  
  42.         } finally {  
  43.             destroy();  
  44.         }  
  45.         return result;  
  46.     }  
  47.   
  48. }  

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

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

你可能感兴趣的:(Java及JavaEE实训案例)