• 基于java学生选课系统


    开发工具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.帮助、关于

     管理员截图:

     

     

     

     

     

     

    教师截图:

     

     

     

     

     

     

    学生截图:

     

     

     

    1. package com.artisan.view;
    2. import java.awt.EventQueue;
    3. import javax.swing.JInternalFrame;
    4. import javax.swing.GroupLayout;
    5. import javax.swing.GroupLayout.Alignment;
    6. import javax.swing.JOptionPane;
    7. import javax.swing.JScrollPane;
    8. import javax.swing.JLabel;
    9. import java.awt.Font;
    10. import java.util.List;
    11. import java.util.Vector;
    12. import javax.swing.ImageIcon;
    13. import javax.swing.JTextField;
    14. import javax.swing.JButton;
    15. import javax.swing.LayoutStyle.ComponentPlacement;
    16. import javax.swing.JTable;
    17. import javax.swing.table.DefaultTableModel;
    18. import javax.swing.UIManager;
    19. import com.artisan.dao.ClassDao;
    20. import com.artisan.model.StudentClass;
    21. import com.artisan.util.StringUtil;
    22. import java.awt.event.ActionListener;
    23. import java.awt.event.ActionEvent;
    24. import javax.swing.JTextArea;
    25. import java.awt.event.MouseAdapter;
    26. import java.awt.event.MouseEvent;
    27. public class ManageClassFrm extends JInternalFrame {
    28. private JTextField searchClassNameTextField;
    29. private JTable classListTable;
    30. private JTextField editClassNameTextField;
    31. private JTextArea editClassInfoTextArea;
    32. /**
    33. * Launch the application.
    34. */
    35. public static void main(String[] args) {
    36. EventQueue.invokeLater(new Runnable() {
    37. public void run() {
    38. try {
    39. ManageClassFrm frame = new ManageClassFrm();
    40. frame.setVisible(true);
    41. } catch (Exception e) {
    42. e.printStackTrace();
    43. }
    44. }
    45. });
    46. }
    47. /**
    48. * Create the frame.
    49. */
    50. public ManageClassFrm() {
    51. setClosable(true);
    52. setIconifiable(true);
    53. setTitle("\u73ED\u7EA7\u4FE1\u606F\u7BA1\u7406");
    54. setBounds(100, 100, 773, 562);
    55. JScrollPane scrollPane = new JScrollPane();
    56. JLabel label = new JLabel("\u73ED\u7EA7\u540D\u79F0\uFF1A");
    57. label.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u73ED\u7EA7\u540D\u79F0.png")));
    58. label.setFont(new Font("微软雅黑", Font.PLAIN, 14));
    59. searchClassNameTextField = new JTextField();
    60. searchClassNameTextField.setColumns(10);
    61. JButton searchButton = new JButton("\u67E5\u8BE2");
    62. searchButton.addActionListener(new ActionListener() {
    63. public void actionPerformed(ActionEvent arg0) {
    64. StudentClass sc = new StudentClass();
    65. sc.setName(searchClassNameTextField.getText().toString());
    66. setTable(sc);
    67. }
    68. });
    69. searchButton.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u641C\u7D22.png")));
    70. searchButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));
    71. JLabel label_1 = new JLabel("\u73ED\u7EA7\u540D\u79F0\uFF1A");
    72. label_1.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u73ED\u7EA7\u540D\u79F0.png")));
    73. label_1.setFont(new Font("微软雅黑", Font.PLAIN, 14));
    74. editClassNameTextField = new JTextField();
    75. editClassNameTextField.setColumns(10);
    76. JLabel label_2 = new JLabel("\u73ED\u7EA7\u4FE1\u606F\uFF1A");
    77. label_2.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u73ED\u7EA7\u4ECB\u7ECD.png")));
    78. label_2.setFont(new Font("微软雅黑", Font.PLAIN, 14));
    79. editClassInfoTextArea = new JTextArea();
    80. JButton submitEditButton = new JButton("\u786E\u8BA4\u4FEE\u6539");
    81. submitEditButton.addActionListener(new ActionListener() {
    82. public void actionPerformed(ActionEvent ae) {
    83. submitEditAct(ae);
    84. }
    85. });
    86. submitEditButton.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u786E\u8BA4.png")));
    87. submitEditButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));
    88. JButton submitDeleteButton = new JButton("\u5220\u9664");
    89. submitDeleteButton.addActionListener(new ActionListener() {
    90. public void actionPerformed(ActionEvent ae) {
    91. deleteClassAct(ae);
    92. }
    93. });
    94. submitDeleteButton.setIcon(new ImageIcon(ManageClassFrm.class.getResource("/images/\u5220\u9664.png")));
    95. submitDeleteButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));
    96. GroupLayout groupLayout = new GroupLayout(getContentPane());
    97. groupLayout.setHorizontalGroup(
    98. groupLayout.createParallelGroup(Alignment.LEADING)
    99. .addGroup(groupLayout.createSequentialGroup()
    100. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
    101. .addGroup(groupLayout.createSequentialGroup()
    102. .addGap(160)
    103. .addComponent(label)
    104. .addGap(18)
    105. .addComponent(searchClassNameTextField, GroupLayout.PREFERRED_SIZE, 207, GroupLayout.PREFERRED_SIZE)
    106. .addGap(50)
    107. .addComponent(searchButton))
    108. .addGroup(groupLayout.createSequentialGroup()
    109. .addGap(110)
    110. .addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 536, GroupLayout.PREFERRED_SIZE))
    111. .addGroup(groupLayout.createSequentialGroup()
    112. .addGap(53)
    113. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
    114. .addGroup(groupLayout.createSequentialGroup()
    115. .addPreferredGap(ComponentPlacement.RELATED)
    116. .addComponent(label_2)
    117. .addGap(18)
    118. .addComponent(editClassInfoTextArea))
    119. .addGroup(groupLayout.createSequentialGroup()
    120. .addComponent(label_1)
    121. .addGap(18)
    122. .addComponent(editClassNameTextField, GroupLayout.PREFERRED_SIZE, 146, GroupLayout.PREFERRED_SIZE)))
    123. .addGap(102)
    124. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
    125. .addComponent(submitDeleteButton, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    126. .addComponent(submitEditButton, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
    127. .addContainerGap(111, Short.MAX_VALUE))
    128. );
    129. groupLayout.setVerticalGroup(
    130. groupLayout.createParallelGroup(Alignment.LEADING)
    131. .addGroup(groupLayout.createSequentialGroup()
    132. .addGap(45)
    133. .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
    134. .addComponent(label, GroupLayout.PREFERRED_SIZE, 27, GroupLayout.PREFERRED_SIZE)
    135. .addComponent(searchClassNameTextField, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE)
    136. .addComponent(searchButton, GroupLayout.PREFERRED_SIZE, 31, GroupLayout.PREFERRED_SIZE))
    137. .addGap(30)
    138. .addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 282, GroupLayout.PREFERRED_SIZE)
    139. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
    140. .addGroup(groupLayout.createSequentialGroup()
    141. .addGap(18)
    142. .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
    143. .addComponent(label_1)
    144. .addComponent(editClassNameTextField, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE))
    145. .addGap(18)
    146. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
    147. .addGroup(groupLayout.createSequentialGroup()
    148. .addComponent(editClassInfoTextArea, GroupLayout.DEFAULT_SIZE, 66, Short.MAX_VALUE)
    149. .addContainerGap())
    150. .addGroup(Alignment.TRAILING, groupLayout.createSequentialGroup()
    151. .addComponent(label_2)
    152. .addGap(32))))
    153. .addGroup(groupLayout.createSequentialGroup()
    154. .addGap(30)
    155. .addComponent(submitEditButton)
    156. .addGap(34)
    157. .addComponent(submitDeleteButton)
    158. .addContainerGap())))
    159. );
    160. classListTable = new JTable();
    161. classListTable.addMouseListener(new MouseAdapter() {
    162. @Override
    163. public void mouseClicked(MouseEvent me) {
    164. selectedTableRow(me);
    165. }
    166. });
    167. classListTable.setFont(new Font("微软雅黑", Font.PLAIN, 12));
    168. classListTable.setModel(new DefaultTableModel(
    169. new Object[][] {
    170. },
    171. new String[] {
    172. "\u73ED\u7EA7\u7F16\u53F7","\u73ED\u7EA7\u540D\u79F0" , "\u73ED\u7EA7\u4FE1\u606F\u4ECB\u7ECD"
    173. }
    174. ) {
    175. boolean[] columnEditables = new boolean[] {
    176. false, false, false
    177. };
    178. public boolean isCellEditable(int row, int column) {
    179. return columnEditables[column];
    180. }
    181. });
    182. classListTable.getColumnModel().getColumn(2).setPreferredWidth(316);
    183. scrollPane.setViewportView(classListTable);
    184. getContentPane().setLayout(groupLayout);
    185. setTable(new StudentClass());
    186. }
    187. protected void deleteClassAct(ActionEvent ae) {
    188. // TODO Auto-generated method stub
    189. if(JOptionPane.showConfirmDialog(this, "您确定删除么?") != JOptionPane.OK_OPTION){
    190. return;
    191. }
    192. int index = classListTable.getSelectedRow();
    193. if(index == -1){
    194. JOptionPane.showMessageDialog(this, "请选中要删除的数据!");
    195. return;
    196. }
    197. DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();
    198. int id = Integer.parseInt(dft.getValueAt(classListTable.getSelectedRow(), 0).toString());
    199. ClassDao classDao = new ClassDao();
    200. if(classDao.delete(id)){
    201. JOptionPane.showMessageDialog(this, "删除成功!");
    202. }else{
    203. JOptionPane.showMessageDialog(this, "删除失败!");
    204. }
    205. classDao.closeDao();
    206. setTable(new StudentClass());
    207. }
    208. protected void submitEditAct(ActionEvent ae) {
    209. // TODO Auto-generated method stub
    210. ClassDao classDao = new ClassDao();
    211. int index = classListTable.getSelectedRow();
    212. if(index == -1){
    213. JOptionPane.showMessageDialog(this, "请选中要修改的数据!");
    214. return;
    215. }
    216. DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();
    217. String className = dft.getValueAt(classListTable.getSelectedRow(), 1).toString();
    218. String classInfo = dft.getValueAt(classListTable.getSelectedRow(), 2).toString();
    219. String editClassName = editClassNameTextField.getText().toString();
    220. String editClassInfo = editClassInfoTextArea.getText().toString();
    221. if(StringUtil.isEmpty(editClassName)){
    222. JOptionPane.showMessageDialog(this, "请填写要修改的名称!");
    223. return;
    224. }
    225. if(className.equals(editClassName) && classInfo.equals(editClassInfo)){
    226. JOptionPane.showMessageDialog(this, "您还没有做任何修改!");
    227. return;
    228. }
    229. int id = Integer.parseInt(dft.getValueAt(classListTable.getSelectedRow(), 0).toString());
    230. StudentClass sc = new StudentClass();
    231. sc.setId(id);
    232. sc.setName(editClassName);
    233. sc.setInfo(editClassInfo);
    234. if(classDao.update(sc)){
    235. JOptionPane.showMessageDialog(this, "更新成功!");
    236. }else{
    237. JOptionPane.showMessageDialog(this, "更新失败!");
    238. }
    239. classDao.closeDao();
    240. setTable(new StudentClass());
    241. }
    242. protected void selectedTableRow(MouseEvent me) {
    243. // TODO Auto-generated method stub
    244. DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();
    245. editClassNameTextField.setText(dft.getValueAt(classListTable.getSelectedRow(), 1).toString());
    246. editClassInfoTextArea.setText(dft.getValueAt(classListTable.getSelectedRow(), 2).toString());
    247. }
    248. private void setTable(StudentClass studentClass){
    249. DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();
    250. dft.setRowCount(0);
    251. ClassDao classDao = new ClassDao();
    252. List classList = classDao.getClassList(studentClass);
    253. for (StudentClass sc : classList) {
    254. Vector v = new Vector();
    255. v.add(sc.getId());
    256. v.add(sc.getName());
    257. v.add(sc.getInfo());
    258. dft.addRow(v);
    259. }
    260. classDao.closeDao();
    261. }
    262. }

    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 studentList = new ArrayList();
        private List courseList = new ArrayList();
        /**
         * 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();
        }

        private 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 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);
            }
        }
    }
     

  • 相关阅读:
    Mysql查询去空格方法汇总
    使用SPDK lib搭建自己的NVMe-oF Target应用
    玩玩群晖NAS-搭建一个私有的Git服务
    道可云元宇宙每日资讯|安踏发布“羽龙元宇宙”时装秀
    基于MSTP+VRRP的高可用企业网络规划与设计
    monkeyDev使用及初次使用问题的解决方法
    Dart 语言入门
    JVM运行时数据区——程序计数器
    RabbitMQ 总结
    JuiceFS 在多云架构中加速大模型推理
  • 原文地址:https://blog.csdn.net/weixin_42899150/article/details/127950511