开发工具eclipse,jdk1.8
技术:java swing
数据库:mysql5.7
学生选课系统功能:管理员、教师、学生三个角色
一、管理员功能:
1.登录、修改密码、退出系统
2.学生管理:添加、修改、删除、查询
3.班级管理:添加、修改、删除、查询
4.教师管理:添加、修改、删除、查询
5.课程管理:添加、修改、删除、查询
6.选课管理:修改选课、推选课程
7.帮助、关于
二、教师功能:
1.登录、修改密码、退出系统
2.学生管理:添加、修改、删除、查询
3.班级管理:添加、修改、删除、查询
4.教师管理:修改个人信息
5.课程管理:添加、修改、删除、查询
6.选课管理:修改选课、推选课程
7.帮助、关于
三、学生功能:
1.登录、修改密码、退出系统
2.学生管理:修改个人信息
3.选课管理:修改选课、推选课程
4.帮助、关于
管理员截图:
教师截图:
学生截图:
package com.artisan.view;
import java.awt.EventQueue;
import javax.swing.JInternalFrame;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JLabel;
import java.awt.Font;
import java.util.List;
import java.util.Vector;
import javax.swing.ImageIcon;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.UIManager;
import com.artisan.dao.ClassDao;
import com.artisan.model.StudentClass;
import com.artisan.util.StringUtil;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextArea;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class ManageClassFrm extends JInternalFrame {
private JTextField searchClassNameTextField;
private JTable classListTable;
private JTextField editClassNameTextField;
private JTextArea editClassInfoTextArea;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ManageClassFrm frame = new ManageClassFrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public ManageClassFrm() {
setClosable(true);
setIconifiable(true);
setTitle("\u73ED\u7EA7\u4FE1\u606F\u7BA1\u7406");
setBounds(100, 100, 773, 562);
JScrollPane scrollPane = new JScrollPane();
JLabel label = new JLabel("\u73ED\u7EA7\u540D\u79F0\uFF1A");
label.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u73ED\u7EA7\u540D\u79F0.png")));
label.setFont(new Font("微软雅黑", Font.PLAIN, 14));
searchClassNameTextField = new JTextField();
searchClassNameTextField.setColumns(10);
JButton searchButton = new JButton("\u67E5\u8BE2");
searchButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
StudentClass sc = new StudentClass();
sc.setName(searchClassNameTextField.getText().toString());
setTable(sc);
}
});
searchButton.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u641C\u7D22.png")));
searchButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));
JLabel label_1 = new JLabel("\u73ED\u7EA7\u540D\u79F0\uFF1A");
label_1.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u73ED\u7EA7\u540D\u79F0.png")));
label_1.setFont(new Font("微软雅黑", Font.PLAIN, 14));
editClassNameTextField = new JTextField();
editClassNameTextField.setColumns(10);
JLabel label_2 = new JLabel("\u73ED\u7EA7\u4FE1\u606F\uFF1A");
label_2.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u73ED\u7EA7\u4ECB\u7ECD.png")));
label_2.setFont(new Font("微软雅黑", Font.PLAIN, 14));
editClassInfoTextArea = new JTextArea();
JButton submitEditButton = new JButton("\u786E\u8BA4\u4FEE\u6539");
submitEditButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
submitEditAct(ae);
}
});
submitEditButton.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u786E\u8BA4.png")));
submitEditButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));
JButton submitDeleteButton = new JButton("\u5220\u9664");
submitDeleteButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
deleteClassAct(ae);
}
});
submitDeleteButton.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u5220\u9664.png")));
submitDeleteButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(160)
.addComponent(label)
.addGap(18)
.addComponent(searchClassNameTextField, GroupLayout.PREFERRED_SIZE, 207, GroupLayout.PREFERRED_SIZE)
.addGap(50)
.addComponent(searchButton))
.addGroup(groupLayout.createSequentialGroup()
.addGap(110)
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 536, GroupLayout.PREFERRED_SIZE))
.addGroup(groupLayout.createSequentialGroup()
.addGap(53)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
.addGroup(groupLayout.createSequentialGroup()
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(label_2)
.addGap(18)
.addComponent(editClassInfoTextArea))
.addGroup(groupLayout.createSequentialGroup()
.addComponent(label_1)
.addGap(18)
.addComponent(editClassNameTextField, GroupLayout.PREFERRED_SIZE, 146, GroupLayout.PREFERRED_SIZE)))
.addGap(102)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
.addComponent(submitDeleteButton, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(submitEditButton, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addContainerGap(111, Short.MAX_VALUE))
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(45)
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
.addComponent(label, GroupLayout.PREFERRED_SIZE, 27, GroupLayout.PREFERRED_SIZE)
.addComponent(searchClassNameTextField, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE)
.addComponent(searchButton, GroupLayout.PREFERRED_SIZE, 31, GroupLayout.PREFERRED_SIZE))
.addGap(30)
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 282, GroupLayout.PREFERRED_SIZE)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(18)
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
.addComponent(label_1)
.addComponent(editClassNameTextField, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addComponent(editClassInfoTextArea, GroupLayout.DEFAULT_SIZE, 66, Short.MAX_VALUE)
.addContainerGap())
.addGroup(Alignment.TRAILING, groupLayout.createSequentialGroup()
.addComponent(label_2)
.addGap(32))))
.addGroup(groupLayout.createSequentialGroup()
.addGap(30)
.addComponent(submitEditButton)
.addGap(34)
.addComponent(submitDeleteButton)
.addContainerGap())))
);
classListTable = new JTable();
classListTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent me) {
selectedTableRow(me);
}
});
classListTable.setFont(new Font("微软雅黑", Font.PLAIN, 12));
classListTable.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u73ED\u7EA7\u7F16\u53F7","\u73ED\u7EA7\u540D\u79F0" , "\u73ED\u7EA7\u4FE1\u606F\u4ECB\u7ECD"
}
) {
boolean[] columnEditables = new boolean[] {
false, false, false
};
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
classListTable.getColumnModel().getColumn(2).setPreferredWidth(316);
scrollPane.setViewportView(classListTable);
getContentPane().setLayout(groupLayout);
setTable(new StudentClass());
}
protected void deleteClassAct(ActionEvent ae) {
// TODO Auto-generated method stub
if(JOptionPane.showConfirmDialog(this, "您确定删除么?") != JOptionPane.OK_OPTION){
return;
}
int index = classListTable.getSelectedRow();
if(index == -1){
JOptionPane.showMessageDialog(this, "请选中要删除的数据!");
return;
}
DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();
int id = Integer.parseInt(dft.getValueAt(classListTable.getSelectedRow(), 0).toString());
ClassDao classDao = new ClassDao();
if(classDao.delete(id)){
JOptionPane.showMessageDialog(this, "删除成功!");
}else{
JOptionPane.showMessageDialog(this, "删除失败!");
}
classDao.closeDao();
setTable(new StudentClass());
}
protected void submitEditAct(ActionEvent ae) {
// TODO Auto-generated method stub
ClassDao classDao = new ClassDao();
int index = classListTable.getSelectedRow();
if(index == -1){
JOptionPane.showMessageDialog(this, "请选中要修改的数据!");
return;
}
DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();
String className = dft.getValueAt(classListTable.getSelectedRow(), 1).toString();
String classInfo = dft.getValueAt(classListTable.getSelectedRow(), 2).toString();
String editClassName = editClassNameTextField.getText().toString();
String editClassInfo = editClassInfoTextArea.getText().toString();
if(StringUtil.isEmpty(editClassName)){
JOptionPane.showMessageDialog(this, "请填写要修改的名称!");
return;
}
if(className.equals(editClassName) && classInfo.equals(editClassInfo)){
JOptionPane.showMessageDialog(this, "您还没有做任何修改!");
return;
}
int id = Integer.parseInt(dft.getValueAt(classListTable.getSelectedRow(), 0).toString());
StudentClass sc = new StudentClass();
sc.setId(id);
sc.setName(editClassName);
sc.setInfo(editClassInfo);
if(classDao.update(sc)){
JOptionPane.showMessageDialog(this, "更新成功!");
}else{
JOptionPane.showMessageDialog(this, "更新失败!");
}
classDao.closeDao();
setTable(new StudentClass());
}
protected void selectedTableRow(MouseEvent me) {
// TODO Auto-generated method stub
DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();
editClassNameTextField.setText(dft.getValueAt(classListTable.getSelectedRow(), 1).toString());
editClassInfoTextArea.setText(dft.getValueAt(classListTable.getSelectedRow(), 2).toString());
}
private void setTable(StudentClass studentClass){
DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();
dft.setRowCount(0);
ClassDao classDao = new ClassDao();
List<StudentClass> classList = classDao.getClassList(studentClass);
for (StudentClass sc : classList) {
Vector v = new Vector();
v.add(sc.getId());
v.add(sc.getName());
v.add(sc.getInfo());
dft.addRow(v);
}
classDao.closeDao();
}
}
package com.artisan.view;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;import com.artisan.dao.CourseDao;
import com.artisan.dao.SelectedCourseDao;
import com.artisan.dao.StudentDao;
import com.artisan.model.Course;
import com.artisan.model.SelectedCourse;
import com.artisan.model.Student;public class ManageSelectedCourseFrm extends JInternalFrame {
private JTable selectedCourseListTable;
private JComboBox searchCourseComboBox;
private JComboBox searchStudentComboBox;
private JComboBox editSelectedStudentComboBox;
private JComboBox editSelectedCourseComboBox;
private List<Student> studentList = new ArrayList<Student>();
private List<Course> courseList = new ArrayList<Course>();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ManageSelectedCourseFrm frame = new ManageSelectedCourseFrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}/**
* Create the frame.
*/
public ManageSelectedCourseFrm() {
setClosable(true);
setIconifiable(true);
setTitle("\u9009\u8BFE\u7BA1\u7406");
setBounds(100, 100, 669, 562);
JLabel label = new JLabel("\u5B66\u751F\uFF1A");
label.setIcon(new ImageIcon(ManageSelectedCourseFrm.class.getResource("/images/\u5B66\u751F\u7BA1\u7406.png")));
label.setFont(new Font("微软雅黑", Font.PLAIN, 14));
searchStudentComboBox = new JComboBox();
searchStudentComboBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ie) {
studentChangeAct(ie);
}
});
JLabel label_1 = new JLabel("\u8BFE\u7A0B\uFF1A");
label_1.setIcon(new ImageIcon(ManageSelectedCourseFrm.class.getResource("/images/\u65B0\u4EBA\u8BFE\u7A0B.png")));
label_1.setFont(new Font("微软雅黑", Font.PLAIN, 14));
searchCourseComboBox = new JComboBox();
JButton confirmSelectedButton = new JButton("\u786E\u8BA4\u9009\u8BFE");
confirmSelectedButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
confirmSelectedCourse(ae);
}
});
confirmSelectedButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));
confirmSelectedButton.setIcon(new ImageIcon(ManageSelectedCourseFrm.class.getResource("/images/\u786E\u8BA4.png")));
JScrollPane scrollPane = new JScrollPane();
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "\u4FEE\u6539\u9009\u8BFE", TitledBorder.LEADING, TitledBorder.TOP, null, null));
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.TRAILING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(46)
.addComponent(label)
.addGap(2)
.addComponent(searchStudentComboBox, GroupLayout.PREFERRED_SIZE, 124, GroupLayout.PREFERRED_SIZE)
.addGap(20)
.addComponent(label_1)
.addGap(12)
.addComponent(searchCourseComboBox, GroupLayout.PREFERRED_SIZE, 127, GroupLayout.PREFERRED_SIZE)
.addGap(36)
.addComponent(confirmSelectedButton)
.addContainerGap(49, Short.MAX_VALUE))
.addGroup(groupLayout.createSequentialGroup()
.addContainerGap(81, Short.MAX_VALUE)
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 493, GroupLayout.PREFERRED_SIZE)
.addGap(77))
.addGroup(Alignment.LEADING, groupLayout.createSequentialGroup()
.addGap(75)
.addComponent(panel, GroupLayout.PREFERRED_SIZE, 500, GroupLayout.PREFERRED_SIZE)
.addContainerGap(78, Short.MAX_VALUE))
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(36)
.addComponent(label))
.addGroup(groupLayout.createSequentialGroup()
.addGap(34)
.addComponent(searchStudentComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGroup(groupLayout.createSequentialGroup()
.addGap(34)
.addComponent(label_1))
.addGroup(groupLayout.createSequentialGroup()
.addGap(33)
.addComponent(searchCourseComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGroup(groupLayout.createSequentialGroup()
.addGap(32)
.addComponent(confirmSelectedButton)))
.addGap(47)
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 216, GroupLayout.PREFERRED_SIZE)
.addGap(31)
.addComponent(panel, GroupLayout.PREFERRED_SIZE, 144, GroupLayout.PREFERRED_SIZE)
.addContainerGap(35, Short.MAX_VALUE))
);
selectedCourseListTable = new JTable();
selectedCourseListTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent me) {
selectedCourse(me);
}
});
selectedCourseListTable.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u9009\u8BFE\u7F16\u53F7", "\u5B66\u751F\u59D3\u540D", "\u8BFE\u7A0B\u540D\u79F0"
}
) {
boolean[] columnEditables = new boolean[] {
false, false, false
};
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
scrollPane.setViewportView(selectedCourseListTable);
JLabel label_2 = new JLabel("\u5B66\u751F\uFF1A");
label_2.setIcon(new ImageIcon(ManageSelectedCourseFrm.class.getResource("/images/\u5B66\u751F\u7BA1\u7406.png")));
label_2.setFont(new Font("微软雅黑", Font.PLAIN, 14));
editSelectedStudentComboBox = new JComboBox();
JLabel label_3 = new JLabel("\u8BFE\u7A0B\uFF1A");
label_3.setIcon(new ImageIcon(ManageSelectedCourseFrm.class.getResource("/images/\u65B0\u4EBA\u8BFE\u7A0B.png")));
label_3.setFont(new Font("微软雅黑", Font.PLAIN, 14));
editSelectedCourseComboBox = new JComboBox();
JButton confirmEditButton = new JButton("\u786E\u8BA4\u4FEE\u6539");
confirmEditButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
editSelectCourseAct(ae);
}
});
confirmEditButton.setIcon(new ImageIcon(ManageSelectedCourseFrm.class.getResource("/images/\u786E\u8BA4.png")));
confirmEditButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));
JButton deleteCourseButton = new JButton("\u9000\u9009\u8BFE\u7A0B");
deleteCourseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
deleteSelectedCourse(ae);
}
});
deleteCourseButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));
deleteCourseButton.setIcon(new ImageIcon(ManageSelectedCourseFrm.class.getResource("/images/\u5220\u9664.png")));
GroupLayout gl_panel = new GroupLayout(panel);
gl_panel.setHorizontalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup()
.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup()
.addContainerGap()
.addComponent(label_2)
.addGap(18)
.addComponent(editSelectedStudentComboBox, GroupLayout.PREFERRED_SIZE, 127, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel.createSequentialGroup()
.addGap(75)
.addComponent(confirmEditButton)))
.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup()
.addGap(39)
.addComponent(label_3)
.addGap(18)
.addComponent(editSelectedCourseComboBox, 0, 140, Short.MAX_VALUE))
.addGroup(gl_panel.createSequentialGroup()
.addGap(65)
.addComponent(deleteCourseButton)))
.addContainerGap())
);
gl_panel.setVerticalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup()
.addContainerGap()
.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
.addComponent(label_2)
.addComponent(editSelectedStudentComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(label_3)
.addComponent(editSelectedCourseComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED, 52, Short.MAX_VALUE)
.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
.addComponent(confirmEditButton)
.addComponent(deleteCourseButton))
.addContainerGap())
);
panel.setLayout(gl_panel);
getContentPane().setLayout(groupLayout);
setStudentCombox();
setCourseCombox();
initTable();
setAuthority();
}
protected void deleteSelectedCourse(ActionEvent ae) {
// TODO Auto-generated method stub
int row = selectedCourseListTable.getSelectedRow();
if(row == -1){
JOptionPane.showMessageDialog(this, "请选择要修改的数据!");
return;
}
int selected_id = Integer.parseInt(selectedCourseListTable.getValueAt(row, 0).toString());
String courseName = selectedCourseListTable.getValueAt(row, 2).toString();
SelectedCourse sc = new SelectedCourse();
sc.setId(selected_id);
SelectedCourseDao scDao = new SelectedCourseDao();
CourseDao courseDao = new CourseDao();
if(scDao.delete(selected_id)){
if(courseDao.updateSelectedNum(getCourseIdByName(courseName), -1)){
JOptionPane.showMessageDialog(this, "退课成功!");
}else{
JOptionPane.showMessageDialog(this, "退课成功,更新课程信息失败!");
}
}else{
JOptionPane.showMessageDialog(this, "退课失败!");
}
scDao.closeDao();
courseDao.closeDao();
initTable();
}protected void editSelectCourseAct(ActionEvent ae) {
// TODO Auto-generated method stub
int row = selectedCourseListTable.getSelectedRow();
if(row == -1){
JOptionPane.showMessageDialog(this, "请选择要修改的数据!");
return;
}
int selected_id = Integer.parseInt(selectedCourseListTable.getValueAt(row, 0).toString());
String studentName = selectedCourseListTable.getValueAt(row, 1).toString();
String courseName = selectedCourseListTable.getValueAt(row, 2).toString();
Student student = (Student) editSelectedStudentComboBox.getSelectedItem();
Course course = (Course) editSelectedCourseComboBox.getSelectedItem();
if(studentName.equals(student.getName())&&courseName.equals(course.getName())){
JOptionPane.showMessageDialog(this, "还未修改数据!");
return;
}
CourseDao courseDao = new CourseDao();
if(!courseDao.selectedEnable(course.getId())){
JOptionPane.showMessageDialog(this, "该课程已经选满,不能再选!");
return;
}
SelectedCourse sc = new SelectedCourse();
sc.setId(selected_id);
sc.setStudent_id(student.getId());
sc.setCourse_id(course.getId());
SelectedCourseDao scDao = new SelectedCourseDao();
if(scDao.isSelected(sc)){
JOptionPane.showMessageDialog(this, "已经选过这门课程了,不能再选!");
return;
}
if(scDao.updateSelectedCourse(sc)){
if(courseDao.updateSelectedNum(sc.getCourse_id(),1)){
if(courseDao.updateSelectedNum(getCourseIdByName(courseName), -1)){
JOptionPane.showMessageDialog(this, "修改成功!!");
}
}else{
JOptionPane.showMessageDialog(this, "修改成功,课程信息更新失败!");
}
}
courseDao.closeDao();
scDao.closeDao();
initTable();
}protected void selectedCourse(MouseEvent me) {
// TODO Auto-generated method stub
int row = selectedCourseListTable.getSelectedRow();
String studentName = selectedCourseListTable.getValueAt(row, 1).toString();
String courseName = selectedCourseListTable.getValueAt(row, 2).toString();
for (int i = 0; i < editSelectedStudentComboBox.getItemCount();i++) {
Student student = (Student) editSelectedStudentComboBox.getItemAt(i);
if(studentName.equals(student.getName())){
editSelectedStudentComboBox.setSelectedIndex(i);
break;
}
}
for (int i = 0; i < editSelectedCourseComboBox.getItemCount();i++) {
Course course = (Course) editSelectedCourseComboBox.getItemAt(i);
if(courseName.equals(course.getName())){
editSelectedCourseComboBox.setSelectedIndex(i);
break;
}
}
}protected void studentChangeAct(ItemEvent ie) {
// TODO Auto-generated method stub
if(ie.getStateChange() == ItemEvent.SELECTED){
initTable();
}
//JOptionPane.showMessageDialog(this, ie.getStateChange());
}protected void confirmSelectedCourse(ActionEvent ae) {
// TODO Auto-generated method stub
Student sstudent = (Student) searchStudentComboBox.getSelectedItem();
Course scourse = (Course) searchCourseComboBox.getSelectedItem();
SelectedCourse sc = new SelectedCourse();
sc.setStudent_id(sstudent.getId());
sc.setCourse_id(scourse.getId());
CourseDao courseDao = new CourseDao();
if(!courseDao.selectedEnable(scourse.getId())){
JOptionPane.showMessageDialog(this, "该课程已经选满,不能再选!");
return;
}
SelectedCourseDao scDao = new SelectedCourseDao();
if(scDao.isSelected(sc)){
JOptionPane.showMessageDialog(this, "已经选过这门课程了,不能再选!");
return;
}
if(scDao.addSelectedCourse(sc)){
if(courseDao.updateSelectedNum(sc.getCourse_id(),1)){
JOptionPane.showMessageDialog(this, "选课成功!!");
}else{
JOptionPane.showMessageDialog(this, "选课成功,课程信息更新失败!");
}
}else{
JOptionPane.showMessageDialog(this, "选课失败!");
}
courseDao.closeDao();
scDao.closeDao();
initTable();
}文章来源:https://www.toymoban.com/news/detail-783153.htmlprivate void setStudentCombox(){
StudentDao studentDao = new StudentDao();
studentList = studentDao.getStudentList(new Student());
studentDao.closeDao();
for (Student student : studentList) {
searchStudentComboBox.addItem(student);
editSelectedStudentComboBox.addItem(student);
}
if("学生".equals(MainFrm.userType.getName())){
Student user = (Student) MainFrm.userObject;
for(int i = 0; i < searchStudentComboBox.getItemCount();i++){
Student student = (Student) searchStudentComboBox.getItemAt(i);
if(student.getId() == user.getId()){
searchStudentComboBox.setSelectedIndex(i);
editSelectedStudentComboBox.setSelectedIndex(i);
break;
}
}
}
}
private void setCourseCombox(){
CourseDao courseDao = new CourseDao();
courseList = courseDao.getCourseList(new Course());
courseDao.closeDao();
for (Course course : courseList) {
searchCourseComboBox.addItem(course);
editSelectedCourseComboBox.addItem(course);
}
}
private void getSelectedCourse(SelectedCourse selectedCourse){
SelectedCourseDao selectedCourseDao = new SelectedCourseDao();
List<SelectedCourse> selectedCourseList = selectedCourseDao.getSelectedCourseList(selectedCourse);
DefaultTableModel dft = (DefaultTableModel) selectedCourseListTable.getModel();
dft.setRowCount(0);
for (SelectedCourse sc : selectedCourseList) {
Vector v = new Vector();
v.add(sc.getId());
v.add(getStudentNameById(sc.getStudent_id()));
v.add(getCourseNameById(sc.getCourse_id()));
dft.addRow(v);
}
selectedCourseDao.closeDao();
}
private void initTable(){
Student student = (Student) searchStudentComboBox.getSelectedItem();
SelectedCourse sc = new SelectedCourse();
sc.setStudent_id(student.getId());
getSelectedCourse(sc);
}
private String getStudentNameById(int id){
for (int i = 0; i < studentList.size(); i++) {
if(studentList.get(i).getId() == id)return studentList.get(i).getName();
}
return "";
}
private String getCourseNameById(int id){
for (int i = 0; i < courseList.size(); i++) {
if(id == courseList.get(i).getId())return courseList.get(i).getName();
}
return "";
}
private int getCourseIdByName(String name){
for (int i = 0; i < courseList.size(); i++) {
if(name.equals(courseList.get(i).getName()))return courseList.get(i).getId();
}
return 0;
}
private void setAuthority(){
if("学生".equals(MainFrm.userType.getName())){
searchStudentComboBox.setEnabled(false);
editSelectedStudentComboBox.setEnabled(false);
}
}
}
文章来源地址https://www.toymoban.com/news/detail-783153.html
到了这里,关于基于java学生选课系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!