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

  • 一、系统介绍
  • 二、系统展示
    • 1.登录页面
    • 2.学生端-主页面
    • 3.学生端-课程选择
    • 4.学生端-查看已选课程
    • 5.学生端-修改密码
    • 6.学生端-学生信息查询
    • 7.管理员-主页面
    • 8.管理员-查看选课情况
    • 9.管理员-添加课程
    • 10.管理员-修改课程信息
    • 11.管理员-查询学生信息
    • 12.管理员-学生密码修改
  • 三、部分代码
    • Admin.java
    • Course.java
    • Selection.java
    • Sinfo.java
    • Student.java
    • DbUtil.java
    • StringUtil.java
    • LogOnDao.java
    • SelectionDao.java
    • StudentDao.java
    • LogOnFrm.java
    • CourseAddInterFrm.java
    • CourseManageInterFrm.java
    • CourseViewInterFrm.java
    • PasswordModifyInterFrm.java
    • SelectCourseInterFrm.java
    • SelectedViewInterFrm.java
    • SelfInfoInterFrm.java
    • StudentPasswordInterFrm.java
    • StudentViewInterFrm.java
  • 四、其他
    • 1.其他系统实现
      • JavaWeb系统系列实现
      • JavaSwing系统系列实现
    • 2.获取源码
    • 3.备注
    • 4.鸡汤

一、系统介绍

本系统实现了学生登录和管理员登录,学生实现选课,查看已选课程,修改密码,查看学生信息功能。管理员实现选课信息的增删改查,学生信息查询,学生密码修改功能。

二、系统展示

1.登录页面

2.学生端-主页面

3.学生端-课程选择

4.学生端-查看已选课程

5.学生端-修改密码

6.学生端-学生信息查询

7.管理员-主页面

8.管理员-查看选课情况

9.管理员-添加课程

10.管理员-修改课程信息

11.管理员-查询学生信息

12.管理员-学生密码修改

三、部分代码

Admin.java

package com.sjsq.model;/*** Admin实体类* * @author jakey* * @author shuijianshiqing** @date 2020-09-06 19:37**/
public class Admin {private int adminId;private String password;public Admin() {super();}public Admin(int adminId, String password) {super();this.adminId = adminId;this.password = password;}public int getAdminId() {return adminId;}public void setAdminId(int adminId) {this.adminId = adminId;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

Course.java

package com.sjsq.model;public class Course {private int courseId = -1;private String courseName;private String courseTime;private String courseTeacher;private int capacity;private int numSelected;public Course() {super();}public Course(String courseName, String courseTime, String courseTeacher) {super();this.courseName = courseName;this.courseTime = courseTime;this.courseTeacher = courseTeacher;}public Course(int courseId, String courseName, String courseTime, String courseTeacher, int capacity) {super();this.courseId = courseId;this.courseName = courseName;this.courseTime = courseTime;this.courseTeacher = courseTeacher;this.capacity = capacity;}public Course(String courseName, String courseTime, String courseTeacher, int capacity) {super();this.courseName = courseName;this.courseTime = courseTime;this.courseTeacher = courseTeacher;this.capacity = capacity;}public int getCourseId() {return courseId;}public void setCourseId(int courseId) {this.courseId = courseId;}public String getCourseName() {return courseName;}public void setCourseName(String courseName) {this.courseName = courseName;}public String getCourseTime() {return courseTime;}public void setCourseTime(String courseTime) {this.courseTime = courseTime;}public String getCourseTeacher() {return courseTeacher;}public void setCourseTeacher(String courseTeacher) {this.courseTeacher = courseTeacher;}public int getCapacity() {return capacity;}public void setCapacity(int capacity) {this.capacity = capacity;}public int getNumSelected() {return numSelected;}public void setNumSelected(int numSelected) {this.numSelected = numSelected;}}

Selection.java

package com.sjsq.model;public class Selection {int selectId;int courseId = -1;int Sno;public Selection() {super();}public Selection(int courseId, int sno) {super();this.courseId = courseId;Sno = sno;}public int getSelectId() {return selectId;}public void setSelectId(int selectId) {this.selectId = selectId;}public int getCourseId() {return courseId;}public void setCourseId(int courseId) {this.courseId = courseId;}public int getSno() {return Sno;}public void setSno(int sno) {Sno = sno;}}

Sinfo.java

package com.sjsq.model;public class Sinfo {private int sno = -1;private String sname;private String ssex;private String smajor;private String stele;public Sinfo() {super();}public Sinfo(int sno) {super();this.sno = sno;}public Sinfo(int sno, String sname) {super();this.sno = sno;this.sname = sname;}public int getSno() {return sno;}public void setSno(int sno) {this.sno = sno;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getSsex() {return ssex;}public void setSsex(String ssex) {this.ssex = ssex;}public String getSmajor() {return smajor;}public void setSmajor(String smajor) {this.smajor = smajor;}public String getStele() {return stele;}public void setStele(String stele) {this.stele = stele;}}

Student.java

package com.sjsq.model;public class Student {private int Sno = -1;private String Spassword;public Student() {super();}public Student(int sno) {super();Sno = sno;}public Student(int sno, String spassword) {super();Sno = sno;Spassword = spassword;}public int getSno() {return Sno;}public void setSno(int sno) {Sno = sno;}public String getSpassword() {return Spassword;}public void setSpassword(String spassword) {Spassword = spassword;}}

DbUtil.java

package com.sjsq.util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DbUtil {private String dbUrl = "jdbc:mysql://localhost:3306/courseselection_management_swing?serverTimezone=Asia/Shanghai";private String dbUserName = "root";private String dbPassword = "admin";private String jdbcName = "com.mysql.cj.jdbc.Driver";/*** 获取数据库连接* * @return* @throws Exception*/public Connection getCon() throws Exception {Class.forName(jdbcName);Connection con = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);return con;}public void closeCon(Connection con) throws Exception {if (con != null) {con.close();}}public static void main(String[] args) {DbUtil dbUtil = new DbUtil();try {dbUtil.getCon();System.out.println("数据库连接成功!");} catch (Exception e) {e.printStackTrace();}}
}

StringUtil.java

package com.sjsq.util;public class StringUtil {public static boolean isEmpty(String str) {if ("".equals(str) || str == null) {return true;} else {return false;}}public static boolean isNotEmpty(String str) {if (!"".equals(str) && str != null) {return true;} else {return false;}}
}

LogOnDao.java

package com.sjsq.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;import com.sjsq.model.Admin;
import com.sjsq.model.Student;public class LogOnDao {/*** 登录验证* * @param con* @param student* @return* @throws Exception*/public Student login(Connection con, Student student) throws Exception {Student resultStu = null;String sql = "select * from t_slogon where Sno=? and Spassword=?";PreparedStatement pstmt = con.prepareStatement(sql);pstmt.setInt(1, student.getSno());pstmt.setString(2, student.getSpassword());ResultSet rs = pstmt.executeQuery();if (rs.next()) {resultStu = new Student();resultStu.setSno(rs.getInt("Sno"));resultStu.setSpassword(rs.getString("Spassword"));}return resultStu;}public Admin login(Connection con, Admin admin) throws Exception {Admin resultAdmin = null;String sql = "select * from t_adminlogon where adminId=? and password=?";PreparedStatement pstmt = con.prepareStatement(sql);pstmt.setInt(1, admin.getAdminId());pstmt.setString(2, admin.getPassword());ResultSet rs = pstmt.executeQuery();if (rs.next()) {resultAdmin = new Admin();resultAdmin.setAdminId(rs.getInt("adminId"));resultAdmin.setPassword(rs.getString("password"));}return resultAdmin;}
}

SelectionDao.java

package com.sjsq.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;import com.sjsq.model.Selection;public class SelectionDao {public int SelectionAdd(Connection con, Selection selection) throws Exception {String sql = "insert into t_selection value(null,?,?)";PreparedStatement pstmt = con.prepareStatement(sql);pstmt.setInt(1, selection.getCourseId());pstmt.setInt(2, selection.getSno());return pstmt.executeUpdate();}public int NumSelectedAdd(Connection con, int courseId) throws Exception {String sql = "update t_course set numSelected=numSelected+1 where courseId=?";PreparedStatement pstmt = con.prepareStatement(sql);pstmt.setInt(1, courseId);return pstmt.executeUpdate();}public ResultSet SelectedList(Connection con, int sno) throws Exception {String sql = "select  * from t_selection s,t_course c where s.Sno=? and s.courseId=c.courseId ";PreparedStatement pstmt = con.prepareStatement(sql);pstmt.setInt(1, sno);return pstmt.executeQuery();}public int SelectionCancel(Connection con, Selection selection) throws Exception {String sql = "delete from t_selection where courseId=? and Sno=?";PreparedStatement pstmt = con.prepareStatement(sql);pstmt.setInt(1, selection.getCourseId());pstmt.setInt(2, selection.getSno());return pstmt.executeUpdate();}public int NumSelectedMinus(Connection con, int courseId) throws Exception {String sql = "update t_course set numSelected=numSelected-1 where courseId=?";PreparedStatement pstmt = con.prepareStatement(sql);pstmt.setInt(1, courseId);return pstmt.executeUpdate();}
}

StudentDao.java

package com.sjsq.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import com.sjsq.model.Sinfo;
import com.sjsq.model.Student;
import com.sjsq.util.StringUtil;public class StudentDao {public ResultSet StudentList(Connection con, Sinfo sinfo) throws SQLException {StringBuffer sb = new StringBuffer("select * from t_sinfo ");if (sinfo.getSno() != -1) {sb.append(" and Sno=" + sinfo.getSno());}if (StringUtil.isNotEmpty(sinfo.getSname())) {sb.append(" and Sname like '%" + sinfo.getSname() + "%'");}PreparedStatement pstmt = con.prepareStatement(sb.toString().replaceFirst("and", "where"));return pstmt.executeQuery();}public ResultSet PasswordList(Connection con, Student student) throws SQLException {StringBuffer sb = new StringBuffer("select * from t_slogon ");if (student.getSno() != -1) {sb.append("where Sno=" + student.getSno());}PreparedStatement pstmt = con.prepareStatement(sb.toString());return pstmt.executeQuery();}public int PasswordModify(Connection con, Student student) throws Exception {String sql = "update t_slogon set Spassword=? where Sno=? ";PreparedStatement pstmt = con.prepareStatement(sql);pstmt.setString(1, student.getSpassword());pstmt.setInt(2, student.getSno());return pstmt.executeUpdate();}}

LogOnFrm.java

package com.sjsq.view;import java.awt.Font;
import java.sql.Connection;import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.UIManager;import com.sjsq.dao.LogOnDao;
import com.sjsq.model.Admin;
import com.sjsq.model.Student;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;public class LogOnFrm extends javax.swing.JFrame {private ButtonGroup buttonGroup1;private JLabel jLabel1;private JLabel jLabel2;private JLabel jLabel3;private JButton jb_logOn;private JButton jb_reset;private JRadioButton jrb_admin;private JRadioButton jrb_student;private JPasswordField passwordTxt;private JFormattedTextField userNameTxt;DbUtil dbUtil = new DbUtil();LogOnDao logOnDao = new LogOnDao();public static Student currentStudent;public LogOnFrm() {Font font = new Font("Dialog", Font.PLAIN, 12);java.util.Enumeration keys = UIManager.getDefaults().keys();while (keys.hasMoreElements()) {Object key = keys.nextElement();Object value = UIManager.get(key);if (value instanceof javax.swing.plaf.FontUIResource) {UIManager.put(key, font);}}initComponents();this.setLocationRelativeTo(null);this.jrb_student.setSelected(true);}private void initComponents() {buttonGroup1 = new ButtonGroup();jLabel1 = new JLabel();jLabel2 = new JLabel();userNameTxt = new JFormattedTextField();jLabel3 = new JLabel();jrb_student = new JRadioButton();jrb_admin = new JRadioButton();jb_logOn = new JButton();jb_reset = new JButton();passwordTxt = new JPasswordField();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);setTitle("用户登录页面");setResizable(false);jLabel1.setFont(new java.awt.Font("隶书", 1, 24));jLabel1.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/sys.png")));jLabel1.setText("学生选课系统");jLabel2.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/userName.png")));jLabel2.setText("账号");jLabel3.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/password.png")));jLabel3.setText("密码");buttonGroup1.add(jrb_student);jrb_student.setText("学生");jrb_student.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/student.png")));buttonGroup1.add(jrb_admin);jrb_admin.setText("管理员");jrb_admin.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/admin.png")));jb_logOn.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/login.png")));jb_logOn.setText("登录");jb_logOn.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_logOnActionPerformed(evt);}});jb_reset.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/reset.png")));jb_reset.setText("重置");jb_reset.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_resetActionPerformed(evt);}});javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(106, 106, 106).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(jLabel1).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup().addComponent(jLabel3).addGap(33, 33, 33)).addGroup(layout.createSequentialGroup().addComponent(jLabel2).addGap(33, 33, 33))).addGap(6, 6, 6).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false).addComponent(passwordTxt, 0, 0, Short.MAX_VALUE).addComponent(userNameTxt, javax.swing.GroupLayout.DEFAULT_SIZE, 135,Short.MAX_VALUE).addGroup(javax.swing.GroupLayout.Alignment.LEADING,layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(jb_logOn).addComponent(jrb_student)).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false).addGroup(layout.createSequentialGroup().addGap(29, 29, 29).addComponent(jb_reset)).addGroup(layout.createSequentialGroup().addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jrb_admin,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE))))))).addContainerGap(143, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap(77, Short.MAX_VALUE).addComponent(jLabel1).addGap(39, 39, 39).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel2).addComponent(userNameTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel3).addComponent(passwordTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jrb_student).addComponent(jrb_admin)).addGap(32, 32, 32).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jb_reset).addComponent(jb_logOn)).addGap(58, 58, 58)));pack();}private void jb_logOnActionPerformed(java.awt.event.ActionEvent evt) {String userName = userNameTxt.getText();String password = new String(passwordTxt.getPassword());if (StringUtil.isEmpty(userName)) {JOptionPane.showMessageDialog(this, "账号不能为空!");return;}if (StringUtil.isEmpty(password)) {JOptionPane.showMessageDialog(this, "密码不能为空!");return;}Connection con = null;if (this.jrb_student.isSelected()) {Student student = new Student(Integer.parseInt(userName), password);try {con = dbUtil.getCon();currentStudent = logOnDao.login(con, student);if (currentStudent != null) {this.dispose();new MainFrm_student().setVisible(true);} else {JOptionPane.showMessageDialog(this, "用户名或密码错误!");}} catch (Exception e) {e.printStackTrace();JOptionPane.showMessageDialog(this, "登录失败!");} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}} else if (this.jrb_admin.isSelected()) {Admin admin = new Admin(Integer.parseInt(userName), password);try {con = dbUtil.getCon();Admin currentAdmin = logOnDao.login(con, admin);if (currentAdmin != null) {this.dispose();new MainFrm_admin().setVisible(true);} else {JOptionPane.showMessageDialog(this, "用户名或密码错误!");}} catch (Exception e) {e.printStackTrace();JOptionPane.showMessageDialog(this, "登录失败!");} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}}private void jb_resetActionPerformed(java.awt.event.ActionEvent evt) {this.resetValue();}private void resetValue() {this.userNameTxt.setText("");this.passwordTxt.setText("");this.jrb_student.setSelected(true);}public static void main(String args[]) {java.awt.EventQueue.invokeLater(new Runnable() {public void run() {new LogOnFrm().setVisible(true);}});}}

CourseAddInterFrm.java

package com.sjsq.view;import java.sql.Connection;import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;import com.sjsq.dao.CourseDao;
import com.sjsq.model.Course;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;public class CourseAddInterFrm extends javax.swing.JInternalFrame {private JTextField capacityTxt;private JTextField courseNameTxt;private JTextField courseTeacherTxt;private JTextField courseTimeTxt;private JLabel jLabel1;private JLabel jLabel2;private JLabel jLabel3;private JLabel jLabel4;private JButton jb_add;private JButton jb_reset;DbUtil dbUtil = new DbUtil();CourseDao coursedao = new CourseDao();public CourseAddInterFrm() {initComponents();this.setLocation(200, 50);}private void initComponents() {jLabel1 = new JLabel();jLabel2 = new JLabel();courseTimeTxt = new JTextField();jLabel3 = new JLabel();jLabel4 = new JLabel();courseNameTxt = new JTextField();courseTeacherTxt = new JTextField();capacityTxt = new JTextField();jb_add = new JButton();jb_reset = new JButton();setClosable(true);setIconifiable(true);setTitle("添加课程");jLabel1.setText("课程名称:");jLabel2.setText("上课时间:");jLabel3.setText("任课老师:");jLabel4.setText("课程容量:");jb_add.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/add.png")));jb_add.setText("添加");jb_add.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_addActionPerformed(evt);}});jb_reset.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/reset.png")));jb_reset.setText("重置");jb_reset.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_resetActionPerformed(evt);}});javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(41, 41, 41).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(jLabel1).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(courseNameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 144,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(60, 60, 60).addComponent(jLabel2).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(courseTimeTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 144,javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addGroup(layout.createSequentialGroup().addComponent(jLabel3).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(courseTeacherTxt, javax.swing.GroupLayout.PREFERRED_SIZE,144, javax.swing.GroupLayout.PREFERRED_SIZE)).addComponent(jb_add)).addGap(60, 60, 60).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(jLabel4).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(capacityTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 144,javax.swing.GroupLayout.PREFERRED_SIZE)).addComponent(jb_reset)))).addContainerGap(44, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(46, 46, 46).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1).addComponent(jLabel2).addComponent(courseTimeTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(courseNameTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel3).addComponent(jLabel4).addComponent(courseTeacherTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(capacityTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 55, Short.MAX_VALUE).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jb_reset).addComponent(jb_add)).addGap(20, 20, 20)));pack();}private void jb_addActionPerformed(java.awt.event.ActionEvent evt) {String courseName = this.courseNameTxt.getText();String courseTime = this.courseTimeTxt.getText();String courseTeacher = this.courseTeacherTxt.getText();String capacity = this.capacityTxt.getText();if (StringUtil.isEmpty(courseName)) {JOptionPane.showMessageDialog(this, "课程名称不能为空!");return;}if (StringUtil.isEmpty(courseTime)) {JOptionPane.showMessageDialog(this, "上课时间不能为空!");return;}if (StringUtil.isEmpty(courseTeacher)) {JOptionPane.showMessageDialog(this, "任课老师不能为空!");return;}if (StringUtil.isEmpty(capacity)) {JOptionPane.showMessageDialog(this, "课程容量不能为空!");return;}Course course = new Course(courseName, courseTime, courseTeacher, Integer.parseInt(capacity));Connection con = null;try {con = dbUtil.getCon();int n = coursedao.courseAdd(con, course);if (n == 1) {JOptionPane.showMessageDialog(this, "课程添加成功!");this.resetValue();} else {JOptionPane.showMessageDialog(this, "课程添加失败!");}} catch (Exception e) {e.printStackTrace();JOptionPane.showMessageDialog(this, "课程添加失败!");}}private void jb_resetActionPerformed(java.awt.event.ActionEvent evt) {this.resetValue();}private void resetValue() {this.courseNameTxt.setText("");this.courseTeacherTxt.setText("");this.courseTimeTxt.setText("");this.capacityTxt.setText("");}}

CourseManageInterFrm.java

package com.sjsq.view;import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.JTable;import com.sjsq.dao.CourseDao;
import com.sjsq.model.Course;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;public class CourseManageInterFrm extends javax.swing.JInternalFrame {private JTextField capacityTxt;private JTextField courseIdTxt;private JTextField courseNameTxt;private JTable courseTable;private JTextField courseTeacherTxt;private JTextField courseTimeTxt;private JLabel jLabel1;private JLabel jLabel2;private JLabel jLabel3;private JLabel jLabel4;private JLabel jLabel5;private JLabel jLabel6;private JLabel jLabel7;private JLabel jLabel8;private JLabel jLabel9;private JPanel jPanel1;private JPanel jPanel2;private JScrollPane jScrollPane1;private JButton jb_delete;private JButton jb_modify;private JButton jb_search;private JTextField numSelectedTxt;private JTextField s_courseNameTxt;private JTextField s_courseTeacherTxt;private JTextField s_courseTimeTxt;DbUtil dbUtil = new DbUtil();CourseDao courseDao = new CourseDao();private int NumSelected;public CourseManageInterFrm() {initComponents();this.setLocation(5, 20);this.fillTable(new Course());}private void resetValue() {this.courseIdTxt.setText("");this.courseNameTxt.setText("");this.courseTeacherTxt.setText("");this.courseTimeTxt.setText("");this.capacityTxt.setText("");this.numSelectedTxt.setText("");}private void fillTable(Course course) {DefaultTableModel dtm = (DefaultTableModel) courseTable.getModel();dtm.setRowCount(0);Connection con = null;try {con = dbUtil.getCon();ResultSet rs = courseDao.courseList(con, course);while (rs.next()) {Vector v = new Vector();v.add(rs.getString("courseId"));v.add(rs.getString("courseName"));v.add(rs.getString("courseTime"));v.add(rs.getString("courseTeacher"));v.add(rs.getString("capacity"));v.add(rs.getString("numSelected"));dtm.addRow(v);}} catch (Exception e) {e.printStackTrace();} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void initComponents() {jPanel1 = new JPanel();jLabel1 = new JLabel();s_courseNameTxt = new JTextField();jLabel2 = new JLabel();s_courseTimeTxt = new JTextField();jLabel3 = new JLabel();s_courseTeacherTxt = new JTextField();jb_search = new JButton();jScrollPane1 = new JScrollPane();courseTable = new JTable();jPanel2 = new JPanel();courseIdTxt = new JTextField();jLabel4 = new JLabel();courseNameTxt = new JTextField();jLabel5 = new JLabel();courseTimeTxt = new JTextField();jLabel6 = new JLabel();courseTeacherTxt = new JTextField();jLabel7 = new JLabel();capacityTxt = new JTextField();jLabel8 = new JLabel();numSelectedTxt = new JTextField();jLabel9 = new JLabel();jb_modify = new JButton();jb_delete = new JButton();setClosable(true);setIconifiable(true);setTitle("课程信息修改");jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("搜索条件"));jLabel1.setText("课程名称:");jLabel2.setText("上课时间:");jLabel3.setText("任课老师:");jb_search.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/search.png")));jb_search.setText("查询");jb_search.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_searchActionPerformed(evt);}});javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);jPanel1.setLayout(jPanel1Layout);jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addGap(24, 24, 24).addComponent(jLabel1).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(s_courseNameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 158,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(26, 26, 26).addComponent(jLabel3).addGap(18, 18, 18).addComponent(s_courseTimeTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 149,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(46, 46, 46).addComponent(jLabel2).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(s_courseTeacherTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 110,javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 50, Short.MAX_VALUE).addComponent(jb_search).addGap(94, 94, 94)));jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addGap(18, 18, 18).addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(s_courseNameTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel1).addComponent(jb_search).addComponent(jLabel3).addComponent(s_courseTimeTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel2).addComponent(s_courseTeacherTxt,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)).addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));courseTable.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {}, new String[] { "课程编号", "课程名称", "上课时间", "任课老师", "课程容量", "已选人数" }) {boolean[] canEdit = new boolean[] { false, false, false, false, false, false };public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit[columnIndex];}});courseTable.addMouseListener(new java.awt.event.MouseAdapter() {public void mousePressed(java.awt.event.MouseEvent evt) {courseTableMousePressed(evt);}});jScrollPane1.setViewportView(courseTable);jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("表单操作"));courseIdTxt.setEditable(false);jLabel4.setText("课程编号:");jLabel5.setText("课程名称:");jLabel6.setText("上课时间:");jLabel7.setText("任课老师:");jLabel8.setText("课程容量:");numSelectedTxt.setEditable(false);jLabel9.setText("已选人数:");javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);jPanel2.setLayout(jPanel2Layout);jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addGap(34, 34, 34).addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel7).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(courseTeacherTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 158,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(45, 45, 45).addComponent(jLabel8).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(capacityTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 158,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(46, 46, 46).addComponent(jLabel9).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(numSelectedTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 158,javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel4).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(courseIdTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 158,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(45, 45, 45).addComponent(jLabel5).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(courseNameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 158,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(46, 46, 46).addComponent(jLabel6).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(courseTimeTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 158,javax.swing.GroupLayout.PREFERRED_SIZE))).addContainerGap(149, Short.MAX_VALUE)));jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addGap(19, 19, 19).addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(courseIdTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel4).addComponent(courseTimeTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel6).addComponent(courseNameTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel5)).addGap(32, 32, 32).addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(courseTeacherTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel7).addComponent(numSelectedTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel9).addComponent(capacityTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel8)).addContainerGap(34, Short.MAX_VALUE)));jb_modify.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/modify.png")));jb_modify.setText("修改");jb_modify.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_modifyActionPerformed(evt);}});jb_delete.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/delete.png")));jb_delete.setText("删除");jb_delete.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_deleteActionPerformed(evt);}});javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE).addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 920, Short.MAX_VALUE).addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))).addGroup(layout.createSequentialGroup().addGap(330, 330, 330).addComponent(jb_modify).addGap(78, 78, 78).addComponent(jb_delete))).addContainerGap()));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 165,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(18, 18, 18).addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(27, 27, 27).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jb_delete).addComponent(jb_modify)).addContainerGap(36, Short.MAX_VALUE)));pack();}private void jb_modifyActionPerformed(java.awt.event.ActionEvent evt) {String courseId = this.courseIdTxt.getText();if (StringUtil.isEmpty(courseId)) {JOptionPane.showMessageDialog(this, "请选择要修改的记录!");return;}String courseName = this.courseNameTxt.getText();String courseTime = this.courseTimeTxt.getText();String courseTeacher = this.courseTeacherTxt.getText();String capacity = this.capacityTxt.getText();if (StringUtil.isEmpty(courseName)) {JOptionPane.showMessageDialog(this, "课程名称不能为空!");return;}if (StringUtil.isEmpty(courseTime)) {JOptionPane.showMessageDialog(this, "上课时间不能为空!");return;}if (StringUtil.isEmpty(courseTeacher)) {JOptionPane.showMessageDialog(this, "任课老师不能为空!");return;}if (StringUtil.isEmpty(capacity)) {JOptionPane.showMessageDialog(this, "课程容量不能为空!");return;}if (Integer.parseInt(capacity) < NumSelected) {JOptionPane.showMessageDialog(this, "课程容量不能小于已选课人数!");return;}Course course = new Course(Integer.parseInt(courseId), courseName, courseTime, courseTeacher,Integer.parseInt(capacity));Connection con = null;try {con = dbUtil.getCon();int modifyNum = courseDao.courseModify(con, course);if (modifyNum == 1) {JOptionPane.showMessageDialog(this, "修改成功!");this.resetValue();this.fillTable(new Course());} else {JOptionPane.showMessageDialog(this, "修改失败!");}} catch (Exception e) {e.printStackTrace();JOptionPane.showMessageDialog(this, "修改失败!");} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void courseTableMousePressed(java.awt.event.MouseEvent evt) {// 获取选中的行int row = courseTable.getSelectedRow();this.courseIdTxt.setText((String) courseTable.getValueAt(row, 0));this.courseNameTxt.setText((String) courseTable.getValueAt(row, 1));this.courseTimeTxt.setText((String) courseTable.getValueAt(row, 2));this.courseTeacherTxt.setText((String) courseTable.getValueAt(row, 3));this.capacityTxt.setText((String) courseTable.getValueAt(row, 4));this.numSelectedTxt.setText((String) courseTable.getValueAt(row, 5));NumSelected = Integer.parseInt((String) courseTable.getValueAt(row, 5));}private void jb_searchActionPerformed(java.awt.event.ActionEvent evt) {String s_courseName = this.s_courseNameTxt.getText();String s_courseTime = this.s_courseTimeTxt.getText();String s_courseTeacher = this.s_courseTeacherTxt.getText();Course course = new Course(s_courseName, s_courseTime, s_courseTeacher);this.fillTable(course);}private void jb_deleteActionPerformed(java.awt.event.ActionEvent evt) {String courseId = this.courseIdTxt.getText();if (StringUtil.isEmpty(courseId)) {JOptionPane.showMessageDialog(this, "请选择要删除的记录!");return;}if (NumSelected > 0) {JOptionPane.showMessageDialog(this, "本课程已有人选,不能删除!");return;}int n = JOptionPane.showConfirmDialog(this, "确定要删除这条记录吗?");if (n == 0) {Connection con = null;try {con = dbUtil.getCon();int deleteNum = courseDao.courseDelete(con, courseId);if (deleteNum == 1) {JOptionPane.showMessageDialog(this, "删除成功!");this.resetValue();this.fillTable(new Course());} else {JOptionPane.showMessageDialog(this, "删除失败!");}} catch (Exception e) {e.printStackTrace();JOptionPane.showMessageDialog(this, "删除失败!");} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}}}

CourseViewInterFrm.java

package com.sjsq.view;import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;import com.sjsq.dao.CourseDao;
import com.sjsq.model.Course;
import com.sjsq.util.DbUtil;public class CourseViewInterFrm extends javax.swing.JInternalFrame {private JTable courseTable;private JScrollPane jScrollPane1;DbUtil dbUtil = new DbUtil();CourseDao courseDao = new CourseDao();public CourseViewInterFrm() {initComponents();this.setLocation(100, 50);this.fillTable(new Course());}private void fillTable(Course course) {DefaultTableModel dtm = (DefaultTableModel) courseTable.getModel();dtm.setRowCount(0);Connection con = null;try {con = dbUtil.getCon();ResultSet rs = courseDao.courseList(con, course);while (rs.next()) {Vector v = new Vector();v.add(rs.getString("courseId"));v.add(rs.getString("courseName"));v.add(rs.getString("courseTime"));v.add(rs.getString("courseTeacher"));v.add(rs.getString("capacity"));v.add(rs.getString("numSelected"));dtm.addRow(v);}} catch (Exception e) {e.printStackTrace();} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void initComponents() {jScrollPane1 = new JScrollPane();courseTable = new JTable();setClosable(true);setIconifiable(true);setTitle("查看选课情况");courseTable.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {}, new String[] { "课程编号", "课程名称", "上课时间", "任课老师", "课程容量", "已选人数" }) {boolean[] canEdit = new boolean[] { false, false, false, false, false, false };public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit[columnIndex];}});jScrollPane1.setViewportView(courseTable);javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 801, Short.MAX_VALUE).addContainerGap()));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE).addContainerGap()));pack();}}

PasswordModifyInterFrm.java

package com.sjsq.view;import java.sql.Connection;import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;import com.sjsq.dao.StudentDao;
import com.sjsq.model.Student;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;public class PasswordModifyInterFrm extends javax.swing.JInternalFrame {private JLabel jLabel1;private JLabel jLabel2;private JLabel jLabel3;private JButton jb_modify;private JButton jb_reset;private JPasswordField newPasswordTxt;private JPasswordField oldPasswordTxt;private JPasswordField passwordConfirmTxt;DbUtil dbUtil = new DbUtil();StudentDao studentDao = new StudentDao();public PasswordModifyInterFrm() {initComponents();this.setLocation(200, 50);}private void initComponents() {jLabel1 = new JLabel();jLabel2 = new JLabel();jLabel3 = new JLabel();jb_modify = new JButton();jb_reset = new JButton();oldPasswordTxt = new JPasswordField();newPasswordTxt = new JPasswordField();passwordConfirmTxt = new JPasswordField();setClosable(true);setIconifiable(true);setTitle("修改密码");jLabel1.setText("原密码:");jLabel2.setText("新密码:");jLabel3.setText("再输入一次新密码:");jb_modify.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/modify.png")));jb_modify.setText("修改");jb_modify.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_modifyActionPerformed(evt);}});jb_reset.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/reset.png"))); // NOI18Njb_reset.setText("重置");jb_reset.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_resetActionPerformed(evt);}});javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(88, 88, 88).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLabel3).addComponent(jLabel2).addComponent(jLabel1).addComponent(jb_modify)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(newPasswordTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 152,javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(passwordConfirmTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 152,javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(oldPasswordTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 152,javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jb_reset)).addContainerGap(105, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(28, 28, 28).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1).addComponent(oldPasswordTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(28, 28, 28).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel2).addComponent(newPasswordTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel3).addComponent(passwordConfirmTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 41, Short.MAX_VALUE).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jb_modify).addComponent(jb_reset)).addGap(25, 25, 25)));pack();}private void jb_modifyActionPerformed(java.awt.event.ActionEvent evt) {String oldPassword = new String(this.oldPasswordTxt.getPassword());String newPassword = new String(this.newPasswordTxt.getPassword());String passwordConfirm = new String(this.passwordConfirmTxt.getPassword());if (StringUtil.isEmpty(oldPassword)) {JOptionPane.showMessageDialog(this, "原密码不能为空!");return;}if (StringUtil.isEmpty(newPassword)) {JOptionPane.showMessageDialog(this, "新密码不能为空!");return;}if (StringUtil.isEmpty(passwordConfirm)) {JOptionPane.showMessageDialog(this, "请再输入一遍新密码!");return;}String rightOldPassword = LogOnFrm.currentStudent.getSpassword();if (!oldPassword.equals(rightOldPassword)) {JOptionPane.showMessageDialog(this, "旧密码错误,请重新输入!");return;}if (!newPassword.equals(passwordConfirm)) {JOptionPane.showMessageDialog(this, "新密码不一致,请重新输入!");return;}Connection con = null;int currentSno = LogOnFrm.currentStudent.getSno();Student student = new Student(currentSno, newPassword);try {con = dbUtil.getCon();int modifyNum = studentDao.PasswordModify(con, student);if (modifyNum == 1) {JOptionPane.showMessageDialog(this, "修改成功!");this.resetValue();} else {JOptionPane.showMessageDialog(this, "修改失败!");}} catch (Exception e) {e.printStackTrace();JOptionPane.showMessageDialog(this, "修改失败!");} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void resetValue() {this.oldPasswordTxt.setText("");this.newPasswordTxt.setText("");this.passwordConfirmTxt.setText("");}private void jb_resetActionPerformed(java.awt.event.ActionEvent evt) {this.oldPasswordTxt.setText("");this.newPasswordTxt.setText("");this.passwordConfirmTxt.setText("");}}

SelectCourseInterFrm.java

package com.sjsq.view;import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;import com.sjsq.dao.CourseDao;
import com.sjsq.dao.SelectionDao;
import com.sjsq.model.Course;
import com.sjsq.model.Selection;
import com.sjsq.util.DbUtil;public class SelectCourseInterFrm extends javax.swing.JInternalFrame {private JTable courseTable;private JScrollPane jScrollPane1;private JButton jb_confirm;private JButton jb_underFull;DbUtil dbUtil = new DbUtil();CourseDao courseDao = new CourseDao();SelectionDao selectionDao = new SelectionDao();private int capacity;private int numSelected;private int courseId = -1;public SelectCourseInterFrm() {initComponents();this.setLocation(130, 50);this.fillTable(new Course());}private void fillTable(Course course) {DefaultTableModel dtm = (DefaultTableModel) courseTable.getModel();dtm.setRowCount(0);Connection con = null;try {con = dbUtil.getCon();ResultSet rs = courseDao.courseList(con, course);while (rs.next()) {Vector v = new Vector();v.add(rs.getString("courseId"));v.add(rs.getString("courseName"));v.add(rs.getString("courseTime"));v.add(rs.getString("courseTeacher"));v.add(rs.getString("capacity"));v.add(rs.getString("numSelected"));dtm.addRow(v);}} catch (Exception e) {e.printStackTrace();} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void initComponents() {jScrollPane1 = new JScrollPane();courseTable = new JTable();jb_underFull = new JButton();jb_confirm = new JButton();setClosable(true);setIconifiable(true);setTitle("课程选择");courseTable.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {}, new String[] { "课程编号", "课程名称", "上课时间", "任课老师", "课程容量", "已选人数" }) {boolean[] canEdit = new boolean[] { false, false, false, true, true, false };public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit[columnIndex];}});courseTable.addMouseListener(new java.awt.event.MouseAdapter() {public void mousePressed(java.awt.event.MouseEvent evt) {courseTableMousePressed(evt);}});jScrollPane1.setViewportView(courseTable);jb_underFull.setText("只显示未选满课程");jb_underFull.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_underFullActionPerformed(evt);}});jb_confirm.setText("确认选择");jb_confirm.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_confirmActionPerformed(evt);}});javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane1,javax.swing.GroupLayout.DEFAULT_SIZE, 578, Short.MAX_VALUE)).addGroup(layout.createSequentialGroup().addGap(134, 134, 134).addComponent(jb_underFull).addGap(98, 98, 98).addComponent(jb_confirm))).addContainerGap()));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 319,javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 37, Short.MAX_VALUE).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jb_underFull).addComponent(jb_confirm)).addContainerGap()));pack();}private void jb_underFullActionPerformed(java.awt.event.ActionEvent evt) {DefaultTableModel dtm = (DefaultTableModel) courseTable.getModel();dtm.setRowCount(0);Connection con = null;Course course = new Course();try {con = dbUtil.getCon();ResultSet rs = courseDao.UnderFullList(con, course);while (rs.next()) {Vector v = new Vector();v.add(rs.getString("courseId"));v.add(rs.getString("courseName"));v.add(rs.getString("courseTime"));v.add(rs.getString("courseTeacher"));v.add(rs.getString("capacity"));v.add(rs.getString("numSelected"));dtm.addRow(v);}} catch (Exception e) {e.printStackTrace();} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void courseTableMousePressed(java.awt.event.MouseEvent evt) {int row = courseTable.getSelectedRow();courseId = Integer.parseInt((String) courseTable.getValueAt(row, 0));capacity = Integer.parseInt((String) courseTable.getValueAt(row, 4));numSelected = Integer.parseInt((String) courseTable.getValueAt(row, 5));}private void jb_confirmActionPerformed(java.awt.event.ActionEvent evt) {if (courseId == -1) {JOptionPane.showMessageDialog(this, "请选择一门课程!");return;}if (capacity == numSelected) {JOptionPane.showMessageDialog(this, "该课程已选满,请选择其他课程.");return;}int n = JOptionPane.showConfirmDialog(this, "确定要选择该门课程吗?");if (n == 0) {Connection con = null;int currentSno = LogOnFrm.currentStudent.getSno();Selection selection = new Selection(courseId, currentSno);try {con = dbUtil.getCon();int selectionNum = selectionDao.SelectionAdd(con, selection);int selectedNum = selectionDao.NumSelectedAdd(con, courseId);if (selectionNum == 1 && selectedNum == 1) {JOptionPane.showMessageDialog(this, "选课成功!");this.fillTable(new Course());} else {JOptionPane.showMessageDialog(this, "选课失败!");}} catch (Exception e) {e.printStackTrace();JOptionPane.showMessageDialog(this, "已选过该门课程!");} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}}}

SelectedViewInterFrm.java

package com.sjsq.view;import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;import com.sjsq.dao.SelectionDao;
import com.sjsq.model.Course;
import com.sjsq.model.Selection;
import com.sjsq.util.DbUtil;public class SelectedViewInterFrm extends javax.swing.JInternalFrame {private JTable courseTable;private JScrollPane jScrollPane1;private JButton jb_selectionCancel;DbUtil dbUtil = new DbUtil();SelectionDao selectionDao = new SelectionDao();private int courseId = -1;public SelectedViewInterFrm() {initComponents();this.setLocation(130, 50);this.fillTable(new Course());}private void fillTable(Course course) {DefaultTableModel dtm = (DefaultTableModel) courseTable.getModel();dtm.setRowCount(0);Connection con = null;int currentSno = LogOnFrm.currentStudent.getSno();try {con = dbUtil.getCon();ResultSet rs = selectionDao.SelectedList(con, currentSno);while (rs.next()) {Vector v = new Vector();v.add(rs.getString("courseId"));v.add(rs.getString("courseName"));v.add(rs.getString("courseTime"));v.add(rs.getString("courseTeacher"));dtm.addRow(v);}} catch (Exception e) {e.printStackTrace();} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void initComponents() {jScrollPane1 = new JScrollPane();courseTable = new JTable();jb_selectionCancel = new JButton();setClosable(true);setIconifiable(true);setTitle("查看已选课程");courseTable.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {}, new String[] { "课程编号", "课程名称", "上课时间", "任课老师" }) {boolean[] canEdit = new boolean[] { false, false, false, false };public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit[columnIndex];}});courseTable.addMouseListener(new java.awt.event.MouseAdapter() {public void mousePressed(java.awt.event.MouseEvent evt) {courseTableMousePressed(evt);}});jScrollPane1.setViewportView(courseTable);jb_selectionCancel.setText("退选");jb_selectionCancel.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_selectionCancelActionPerformed(evt);}});javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane1,javax.swing.GroupLayout.DEFAULT_SIZE, 602, Short.MAX_VALUE)).addGroup(layout.createSequentialGroup().addGap(272, 272, 272).addComponent(jb_selectionCancel))).addContainerGap()));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 205,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(18, 18, 18).addComponent(jb_selectionCancel).addContainerGap(14, Short.MAX_VALUE)));pack();}private void courseTableMousePressed(java.awt.event.MouseEvent evt) {int row = courseTable.getSelectedRow();courseId = Integer.parseInt((String) courseTable.getValueAt(row, 0));}private void jb_selectionCancelActionPerformed(java.awt.event.ActionEvent evt) {if (courseId == -1) {JOptionPane.showMessageDialog(this, "请选择一门课程!");return;}int n = JOptionPane.showConfirmDialog(this, "确定要退选该门课程吗?");if (n == 0) {Connection con = null;int currentSno = LogOnFrm.currentStudent.getSno();Selection selection = new Selection(courseId, currentSno);try {con = dbUtil.getCon();int selectionNum = selectionDao.SelectionCancel(con, selection);int selectedNum = selectionDao.NumSelectedMinus(con, courseId);if (selectionNum == 1 && selectedNum == 1) {JOptionPane.showMessageDialog(this, "退选成功!");this.fillTable(new Course());} else {JOptionPane.showMessageDialog(this, "退选失败!");}} catch (Exception e) {e.printStackTrace();JOptionPane.showMessageDialog(this, "退选失败!");} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}}}

SelfInfoInterFrm.java

package com.sjsq.view;import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;import com.sjsq.dao.StudentDao;
import com.sjsq.model.Sinfo;
import com.sjsq.util.DbUtil;public class SelfInfoInterFrm extends javax.swing.JInternalFrame {private JTable infoTable;private JScrollPane jScrollPane1;DbUtil dbUtil = new DbUtil();StudentDao studentDao = new StudentDao();public SelfInfoInterFrm() {initComponents();this.setLocation(170, 50);this.fillTable(new Sinfo());}private void fillTable(Sinfo sinfo) {DefaultTableModel dtm = (DefaultTableModel) infoTable.getModel();dtm.setRowCount(0);Connection con = null;int currentSno = LogOnFrm.currentStudent.getSno();sinfo = new Sinfo(currentSno);try {con = dbUtil.getCon();ResultSet rs = studentDao.StudentList(con, sinfo);while (rs.next()) {Vector v = new Vector();v.add(rs.getString("Sno"));v.add(rs.getString("Sname"));v.add(rs.getString("Ssex"));v.add(rs.getString("Smajor"));v.add(rs.getString("Stele"));dtm.addRow(v);}} catch (Exception e) {e.printStackTrace();} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void initComponents() {jScrollPane1 = new javax.swing.JScrollPane();infoTable = new javax.swing.JTable();setClosable(true);setIconifiable(true);setTitle("查看学籍信息");infoTable.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {}, new String[] { "学号", "姓名", "性别", "专业", "电话" }) {boolean[] canEdit = new boolean[] { false, false, false, false, false };public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit[columnIndex];}});jScrollPane1.setViewportView(infoTable);javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 529, Short.MAX_VALUE).addContainerGap()));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 51,javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));pack();}}

StudentPasswordInterFrm.java

package com.sjsq.view;import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;import com.sjsq.dao.StudentDao;
import com.sjsq.model.Student;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;public class StudentPasswordInterFrm extends javax.swing.JInternalFrame {private JLabel jLabel1;private JLabel jLabel2;private JLabel jLabel3;private JPanel jPanel1;private JPanel jPanel2;private JScrollPane jScrollPane1;private JButton jb_modify;private JButton jb_search;private JTable passwordTable;private JTextField passwordTxt;private JTextField s_snoTxt;private JTextField snoTxt;DbUtil dbUtil = new DbUtil();StudentDao studentDao = new StudentDao();public StudentPasswordInterFrm() {initComponents();this.setLocation(280, 50);this.fillTable(new Student());}private void fillTable(Student student) {DefaultTableModel dtm = (DefaultTableModel) passwordTable.getModel();dtm.setRowCount(0);Connection con = null;try {con = dbUtil.getCon();ResultSet rs = studentDao.PasswordList(con, student);while (rs.next()) {Vector v = new Vector();v.add(rs.getString("Sno"));v.add(rs.getString("Spassword"));dtm.addRow(v);}} catch (Exception e) {e.printStackTrace();} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void initComponents() {jScrollPane1 = new JScrollPane();passwordTable = new JTable();jPanel1 = new JPanel();jLabel1 = new JLabel();s_snoTxt = new JTextField();jb_search = new JButton();jPanel2 = new JPanel();snoTxt = new JTextField();jLabel2 = new JLabel();jLabel3 = new JLabel();passwordTxt = new JTextField();jb_modify = new JButton();setClosable(true);setIconifiable(true);setTitle("管理学生密码");passwordTable.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {}, new String[] { "学生学号", "密码" }) {boolean[] canEdit = new boolean[] { false, false };public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit[columnIndex];}});passwordTable.addMouseListener(new java.awt.event.MouseAdapter() {public void mousePressed(java.awt.event.MouseEvent evt) {passwordTableMousePressed(evt);}});jScrollPane1.setViewportView(passwordTable);jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("搜索条件"));jLabel1.setText("学生学号:");jb_search.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/search.png")));jb_search.setText("查询");jb_search.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_searchActionPerformed(evt);}});javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);jPanel1.setLayout(jPanel1Layout);jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(javax.swing.GroupLayout.Alignment.TRAILING,jPanel1Layout.createSequentialGroup().addContainerGap(42, Short.MAX_VALUE).addComponent(jLabel1).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(s_snoTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 103,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(42, 42, 42).addComponent(jb_search).addGap(32, 32, 32)));jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(s_snoTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jb_search).addComponent(jLabel1)).addContainerGap(18, Short.MAX_VALUE)));jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("表单操作"));snoTxt.setEditable(false);jLabel2.setText("学生学号:");jLabel3.setText("学生密码:");javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);jPanel2.setLayout(jPanel2Layout);jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addComponent(jLabel2).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(snoTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 93,javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 43, Short.MAX_VALUE).addComponent(jLabel3).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(passwordTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 122,javax.swing.GroupLayout.PREFERRED_SIZE)));jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel2).addComponent(snoTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel3).addComponent(passwordTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addContainerGap(18, Short.MAX_VALUE)));jb_modify.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/modify.png")));jb_modify.setText("修改");jb_modify.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_modifyActionPerformed(evt);}});javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 364,Short.MAX_VALUE))).addGroup(layout.createSequentialGroup().addGap(147, 147, 147).addComponent(jb_modify))).addContainerGap()));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 169,javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(18, 18, 18).addComponent(jb_modify).addContainerGap(29, Short.MAX_VALUE)));pack();}private void jb_modifyActionPerformed(java.awt.event.ActionEvent evt) {String sno = this.snoTxt.getText();if (StringUtil.isEmpty(sno)) {JOptionPane.showMessageDialog(this, "请选择要修改的记录!");return;}String password = this.passwordTxt.getText();if (StringUtil.isEmpty(password)) {JOptionPane.showMessageDialog(this, "密码不能为空!");return;}Student student = new Student(Integer.parseInt(sno), password);Connection con = null;try {con = dbUtil.getCon();int modifyNum = studentDao.PasswordModify(con, student);if (modifyNum == 1) {JOptionPane.showMessageDialog(this, "修改成功!");this.resetValue();this.fillTable(new Student());} else {JOptionPane.showMessageDialog(this, "修改失败!");}} catch (Exception e) {e.printStackTrace();JOptionPane.showMessageDialog(this, "修改失败!");} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void resetValue() {this.snoTxt.setText("");this.passwordTxt.setText("");}private void passwordTableMousePressed(java.awt.event.MouseEvent evt) {int row = passwordTable.getSelectedRow();this.snoTxt.setText((String) passwordTable.getValueAt(row, 0));this.passwordTxt.setText((String) passwordTable.getValueAt(row, 1));}private void jb_searchActionPerformed(java.awt.event.ActionEvent evt) {String s_sno = this.s_snoTxt.getText();if (StringUtil.isEmpty(s_sno)) {s_sno = "-1";}Student student = new Student(Integer.parseInt(s_sno));this.fillTable(student);}}

StudentViewInterFrm.java

package com.sjsq.view;import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;import com.sjsq.dao.StudentDao;
import com.sjsq.model.Sinfo;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;public class StudentViewInterFrm extends javax.swing.JInternalFrame {private JTextField SnameTxt;private JTextField SnoTxt;private JLabel jLabel1;private JLabel jLabel2;private JPanel jPanel1;private JScrollPane jScrollPane1;private JButton jb_search;private JTable studentTable;DbUtil dbUtil = new DbUtil();StudentDao studentDao = new StudentDao();public StudentViewInterFrm() {initComponents();this.setLocation(200, 50);this.fillTable(new Sinfo());}private void fillTable(Sinfo sinfo) {DefaultTableModel dtm = (DefaultTableModel) studentTable.getModel();dtm.setRowCount(0);Connection con = null;try {con = dbUtil.getCon();ResultSet rs = studentDao.StudentList(con, sinfo);while (rs.next()) {Vector v = new Vector();v.add(rs.getString("Sno"));v.add(rs.getString("Sname"));v.add(rs.getString("Ssex"));v.add(rs.getString("Smajor"));v.add(rs.getString("Stele"));dtm.addRow(v);}} catch (Exception e) {e.printStackTrace();} finally {try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}private void initComponents() {jScrollPane1 = new JScrollPane();studentTable = new JTable();jPanel1 = new JPanel();jLabel1 = new JLabel();SnoTxt = new JTextField();jLabel2 = new JLabel();SnameTxt = new JTextField();jb_search = new JButton();setClosable(true);setIconifiable(true);setTitle("查看学生资料");studentTable.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {}, new String[] { "学号", "姓名", "性别", "专业", "电话" }) {boolean[] canEdit = new boolean[] { false, false, false, false, false };public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit[columnIndex];}});jScrollPane1.setViewportView(studentTable);jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("搜索条件"));jLabel1.setText("学生学号:");jLabel2.setText("学生姓名:");jb_search.setIcon(new javax.swing.ImageIcon(LogOnFrm.class.getResource("/images/search.png")));jb_search.setText("查询");jb_search.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jb_searchActionPerformed(evt);}});javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);jPanel1.setLayout(jPanel1Layout);jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addGap(78, 78, 78).addComponent(jLabel1).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(SnoTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 104,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(69, 69, 69).addComponent(jLabel2).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(SnameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 96,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(56, 56, 56).addComponent(jb_search).addContainerGap(85, Short.MAX_VALUE)));jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addGap(25, 25, 25).addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1).addComponent(SnoTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jb_search).addComponent(SnameTxt, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel2)).addContainerGap(38, Short.MAX_VALUE)));javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING,javax.swing.GroupLayout.DEFAULT_SIZE, 685, Short.MAX_VALUE)).addContainerGap()));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 148,javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap(36, Short.MAX_VALUE)));pack();}private void jb_searchActionPerformed(java.awt.event.ActionEvent evt) {String sno = this.SnoTxt.getText();String sname = this.SnameTxt.getText();if (StringUtil.isEmpty(sno)) {sno = "-1";}Sinfo sinfo = new Sinfo(Integer.parseInt(sno), sname);this.fillTable(sinfo);}}

四、其他

1.其他系统实现

JavaWeb系统系列实现

Java+JSP实现学生图书管理系统
Java+JSP实现学生信息管理系统
Java+JSP实现用户信息管理系统
Java+Servlet+JSP实现航空订票系统
Java+Servlet+JSP实现学生选课管理系统
Java+Servlet+JSP实现学生成绩管理系统
Java+Servlet+JSP实现宠物诊所管理系统
Java+SSM+Easyui实现网上考试系统
Java+Springboot+H-ui实现营销管理系统
Java+Springboot+Mybatis+Bootstrap实现网上商城系统

JavaSwing系统系列实现

Java+Swing实现斗地主游戏
Java+Swing实现图书管理系统
Java+Swing实现医院管理系统
Java+Swing实现仓库管理系统
Java+Swing实现考试管理系统
Java+Swing实现通讯录管理系统
Java+Swing实现停车场管理系统
Java+Swing实现学生信息管理系统
Java+Swing实现学生宿舍管理系统
Java+Swing实现学生选课管理系统
Java+Swing实现学生成绩管理系统
Java+Swing实现学校教材管理系统
Java+Swing实现学校教务管理系统
Java+Swing实现企业人事管理系统
Java+Swing实现电子相册管理系统
Java+Swing实现自助取款机(ATM)系统
Java+Swing实现超市管理系统-TXT存储信息
Java+Swing实现宠物商店管理系统-TXT存储信息

2.获取源码

点击以下链接获取源码,数据库文件在sql文件下面。
Java+Swing+Mysql学生选课管理系统源码

3.备注

如有侵权请联系我删除。

4.鸡汤

今日所行之事,是为明日大道所奠基,不慌张,缓缓来!

Eclipse+Java+Swing实现学生选课管理系统相关推荐

  1. 基于 Eclipse+Java Swing + Mysql 学生选课管理系统

    一.项目概要:        基于Java Swing+Mysql8.0数据库的学生选课管理系统,主要有三个部分:系统管理,数据管理,数据查询. 1).系统管理主要用于用户信息的相关管理.主要包括密码 ...

  2. 基于Eclipse+Java+Swing+Mysql图书信息管理系统

    基于Eclipse+Java+Swing+Mysql图书信息管理系统 一.系统介绍 二.功能展示 1.主页 2.新增图书信息 3.删除图书信息 三.数据库 四.其他系统实现 五.获取源码 一.系统介绍 ...

  3. 基于Eclipse+Java+Swing+Mysql实现酒店管理系统

    基于Eclipse+Java+Swing+Mysql实现酒店管理系统 一.系统介绍 二.功能展示 1.用户登陆 2.首页 3.开房 4.退房 5.房间信息 6.顾客信息 三.数据库 四.其它 1.其他 ...

  4. Eclipse+Java+Swing实现宠物商店管理系统

    Java+Swing实现宠物商店 一.系统介绍 二.系统展示 1.主界面 2.增加宠物 3.删除宠物 4.修改宠物 5.查询宠物 6.模块查询 三.系统实现 Cat.java Dog.java Mou ...

  5. Java+Swing+mysql学生信息管理系统

    Java+Swing+mysql学生信息管理系统 一.系统介绍 二.功能展示 1.管理员登陆 2.学生信息查询 3.学生信息添加 4.学生信息修改 5.删除 三.系统实现 1.StudentFrame ...

  6. java程序对学生成绩_Eclipse+Java+Swing实现学生成绩管理系统的实例代码

    一.系统介绍 本系统实现了用户登录,实现了对学生成绩的增删改查,实现了用户修改密码功能,采用MD5加密算法,数据库使用Mysql8.0.13,界面良好. 二.系统展示 1.登录页 2.主页面 3.查询 ...

  7. Java Swing Mysql学生选课系统

    此篇是基于Java Swing Mysql学生选课系统的第二阶段 主要功能: 课程添加.编辑.查询.删除.选课.退课.修改已选课程.以及老师.管理员.学生三种角色的权限分配 开发环境: 开发工具:Ec ...

  8. Java Swing Mysql学生信息管理系统

    通过对Swing的理解 此篇为大家推荐基于JAVA Swing Mysql学生信息管理系统 本视频教程一共分为四个阶段,每个阶段都会是上一个阶段的扩展,每一个阶段的系统都可独立作为一个完整的系统 第一 ...

  9. Java swing实现学生信息管理系统(管理员+学生)

    Java swing实现学生信息管理系统(管理员+学生) (ps:数据库中数据为个人编造,不涉及个人隐私问题,有需要源代码的请联系我) (代码中加入一些美化,整体功能不变) (表结构设计放在数据库截图 ...

  10. Java课程设计-基于Java Swing的学生信息管理系统-版本二

    Java课程设计-基于Java Swing的学生信息管理系统-版本二 1.介绍 2.相关技术 3. 代码仓库 4.所需环境 5.安装教程 6.运行截图 7.相关博客 1.介绍 设计一个简单学生个人信息 ...

最新文章

  1. python实训报告pygame_[源码和文档分享]基于Python的PyGame库实现的2048小游戏
  2. 【Deep Learning】Tensorflow实现逻辑回归
  3. Ubuntu设置宽带连接DSL
  4. elasticSearch -- (文档,类型,索引)
  5. tfidf算法 python_tf–idf算法解释及其python代码实现(下)
  6. python的指针跟c的区别_ctypes中的LP_x*指针和*p指针有什么区别?(以及与结构的奇怪交互)...
  7. 最经典沙盒游戏《我的世界》部分开源:微软出手,称人人可用
  8. 【0702作业】输出九九乘法表
  9. 文件压缩(C#代码)
  10. SQLSERTVER安装教程
  11. 一年级上册计算机教学计划,新版人教版一年级上册教学计划
  12. 腾讯组织了一个联盟,但无法阻止字节跳动拿走一半游戏广告
  13. 复频域求零输入响应_连续信号与系统的复频域分析()LCH.ppt
  14. java类实现接口关键字_一个Java类实现一个接口使用的是implements关键字。
  15. HTML吸引人眼球的网页,优秀网页设计:35个吸引眼球的精美作品集网站
  16. 3、Windows之CMD装逼命令————CMD命令打开网页(让人一看你就是个电脑高手)
  17. JS高级程序设计读书笔记 (第九章 客户端检测)
  18. android 如何检查外部来源,Android是如何判断APK是否不明来源的
  19. 从零开始学python的第16天
  20. Verilog MIPS32 CPU(六)-- MDU

热门文章

  1. uni-app入门教程(4)组件的基本使用
  2. 高中通用技术考点解析——1-2步入设计殿堂
  3. 关于大学宿管阿姨工作和生活的调研报告
  4. codeforces 208A(Dubstep) Java
  5. HTML基础知识总结(相对较全)
  6. jQuery Conference Set to Roost in San Diego
  7. TIA博途学习 | 模拟量信号转换后对应的数值为多少?
  8. Android之利用AccessibilityService实现微信提别提示
  9. Springboot动态实现定时任务
  10. Android四大组件解析