├── README.md ├── 课程设计文档.docx └── 代码文件 ├── ClassRomeManger ├── ClassRomeManger.iml ├── src │ └── main │ │ ├── java │ │ └── com │ │ │ └── lmx │ │ │ ├── Until │ │ │ ├── Requsetuntil.java │ │ │ ├── LoginUntil.java │ │ │ ├── MyEquipmentbutton.java │ │ │ ├── MyShengpibutton.java │ │ │ ├── Mybutton.java │ │ │ ├── MyRecoverbutton.java │ │ │ └── MyFoundButton.java │ │ │ ├── Service │ │ │ ├── ServiceSelect.java │ │ │ ├── ServiceRequest.java │ │ │ ├── ServiceManger.java │ │ │ └── ServiceUser.java │ │ │ ├── View │ │ │ ├── Request │ │ │ │ └── StudentRequest.java │ │ │ ├── Login │ │ │ │ └── LoginSwing.java │ │ │ └── Person │ │ │ │ ├── ManangerLogin.java │ │ │ │ ├── Studentlogin.java │ │ │ │ └── Teacherlogin.java │ │ │ ├── Pojo │ │ │ ├── Manger.java │ │ │ ├── Teacher.java │ │ │ ├── Student.java │ │ │ ├── Course.java │ │ │ ├── Croom.java │ │ │ ├── Equipment.java │ │ │ ├── RequestLog.java │ │ │ └── Request.java │ │ │ └── Mapper │ │ │ └── Mapper.java │ │ └── resources │ │ ├── mybatis-config.xml │ │ └── com │ │ └── lmx │ │ └── Mapper │ │ └── Mapper.xml ├── target │ └── classes │ │ ├── com │ │ └── lmx │ │ │ ├── Pojo │ │ │ ├── Course.class │ │ │ ├── Croom.class │ │ │ ├── Manger.class │ │ │ ├── Equipment.class │ │ │ ├── Request.class │ │ │ ├── Student.class │ │ │ ├── Teacher.class │ │ │ └── RequestLog.class │ │ │ ├── Mapper │ │ │ ├── Mapper.class │ │ │ └── Mapper.xml │ │ │ ├── Until │ │ │ ├── Mybutton.class │ │ │ ├── LoginUntil.class │ │ │ ├── MyFoundButton.class │ │ │ ├── Requsetuntil.class │ │ │ ├── MyRecoverbutton.class │ │ │ ├── MyShengpibutton.class │ │ │ └── MyEquipmentbutton.class │ │ │ ├── Service │ │ │ ├── ServiceUser.class │ │ │ ├── ServiceManger.class │ │ │ ├── ServiceSelect.class │ │ │ └── ServiceRequest.class │ │ │ └── View │ │ │ ├── Login │ │ │ ├── LoginSwing.class │ │ │ ├── LoginSwing$1.class │ │ │ └── LoginSwing$2.class │ │ │ ├── Person │ │ │ ├── Studentlogin.class │ │ │ ├── Teacherlogin.class │ │ │ ├── ManangerLogin.class │ │ │ ├── Studentlogin$1.class │ │ │ ├── Studentlogin$2.class │ │ │ ├── Studentlogin$3.class │ │ │ ├── Studentlogin$4.class │ │ │ ├── Studentlogin$5.class │ │ │ ├── Studentlogin$6.class │ │ │ ├── Studentlogin$7.class │ │ │ ├── Studentlogin$8.class │ │ │ ├── Studentlogin$9.class │ │ │ ├── Teacherlogin$1.class │ │ │ ├── Teacherlogin$2.class │ │ │ ├── Teacherlogin$3.class │ │ │ ├── Teacherlogin$4.class │ │ │ ├── Teacherlogin$5.class │ │ │ ├── Teacherlogin$6.class │ │ │ ├── Teacherlogin$7.class │ │ │ ├── Teacherlogin$8.class │ │ │ ├── Teacherlogin$9.class │ │ │ ├── ManangerLogin$1.class │ │ │ ├── ManangerLogin$2.class │ │ │ ├── ManangerLogin$3.class │ │ │ ├── ManangerLogin$4.class │ │ │ ├── Studentlogin$10.class │ │ │ ├── Studentlogin$11.class │ │ │ ├── Teacherlogin$10.class │ │ │ └── Teacherlogin$11.class │ │ │ └── Request │ │ │ └── StudentRequest.class │ │ └── mybatis-config.xml └── pom.xml └── sql └── classroom.sql /README.md: -------------------------------------------------------------------------------- 1 | # ClassRoomManger 2 | 数据库课程设计-教室信息管理系统 3 | -------------------------------------------------------------------------------- /课程设计文档.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/课程设计文档.docx -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/ClassRomeManger.iml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Until/Requsetuntil.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Until; 2 | 3 | public class Requsetuntil { 4 | // 5 | } 6 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Service/ServiceSelect.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Service; 2 | 3 | public class ServiceSelect { 4 | // 查询模块对对数据库的操作 5 | } 6 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Course.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Course.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Croom.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Croom.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Manger.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Manger.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Mapper/Mapper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Mapper/Mapper.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Equipment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Equipment.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Request.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Request.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Student.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Student.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Teacher.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/Teacher.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Until/Mybutton.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Until/Mybutton.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/RequestLog.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Pojo/RequestLog.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Until/LoginUntil.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Until/LoginUntil.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Service/ServiceUser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Service/ServiceUser.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Until/MyFoundButton.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Until/MyFoundButton.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Until/Requsetuntil.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Until/Requsetuntil.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Service/ServiceManger.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Service/ServiceManger.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Service/ServiceSelect.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Service/ServiceSelect.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Until/MyRecoverbutton.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Until/MyRecoverbutton.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Until/MyShengpibutton.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Until/MyShengpibutton.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Login/LoginSwing.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Login/LoginSwing.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Service/ServiceRequest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Service/ServiceRequest.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Until/MyEquipmentbutton.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/Until/MyEquipmentbutton.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Login/LoginSwing$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Login/LoginSwing$1.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Login/LoginSwing$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Login/LoginSwing$2.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/ManangerLogin.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/ManangerLogin.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$1.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$2.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$3.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$4.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$5.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$6.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$6.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$7.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$7.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$8.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$8.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$9.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$9.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$1.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$2.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$3.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$4.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$5.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$6.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$6.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$7.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$7.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$8.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$8.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$9.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$9.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/ManangerLogin$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/ManangerLogin$1.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/ManangerLogin$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/ManangerLogin$2.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/ManangerLogin$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/ManangerLogin$3.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/ManangerLogin$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/ManangerLogin$4.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$10.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$10.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$11.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Studentlogin$11.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$10.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$10.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$11.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Person/Teacherlogin$11.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/View/Request/StudentRequest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/woshilmx/ClassRoomManger/HEAD/代码文件/ClassRomeManger/target/classes/com/lmx/View/Request/StudentRequest.class -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/resources/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Until/LoginUntil.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Until; 2 | 3 | import com.lmx.Service.ServiceUser; 4 | 5 | import java.io.IOException; 6 | 7 | public class LoginUntil { 8 | public static String success( String index,String usernaem,String password) throws IOException { 9 | ServiceUser serviceUser = new ServiceUser(); 10 | String id=null; 11 | switch (index){ 12 | case "管理员": 13 | 14 | id = serviceUser.ServieSelectManger(usernaem,password); 15 | break; 16 | case "教师": 17 | id=serviceUser.ServieSelectTeacher(usernaem,password); 18 | break; 19 | case "学生": 20 | id= serviceUser.ServieSelectStudent(usernaem,password); 21 | break; 22 | } 23 | if (id!=null){ 24 | return id; 25 | } 26 | else { 27 | return null; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/View/Request/StudentRequest.java: -------------------------------------------------------------------------------- 1 | package com.lmx.View.Request; 2 | 3 | import com.lmx.Service.ServiceManger; 4 | 5 | import javax.swing.*; 6 | import java.awt.*; 7 | 8 | public class StudentRequest extends JFrame { 9 | private JPanel jPanel=new JPanel(); 10 | public StudentRequest() throws HeadlessException { 11 | // 初始化窗体程序 12 | this.init(); 13 | } 14 | private void init(){ 15 | this.setTitle("教室信息管理系统"); 16 | this.setSize(700,700); 17 | 18 | this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 19 | setLocationRelativeTo(null); 20 | this.setResizable(false); 21 | this.setjpanel(); 22 | this.setVisible(true); 23 | } 24 | private void setjpanel(){ 25 | jPanel.setLayout(null); 26 | JLabel jLabel = new JLabel("教室信息管理系统---学生端"); 27 | jLabel.setBounds(160,30,400,40); 28 | jLabel.setFont(new Font("",Font.BOLD,30)); 29 | jPanel.add(jLabel); 30 | 31 | 32 | } 33 | 34 | // public static void main(String[] args) { 35 | //// new ServiceManger().ServiceUpdateTracherRqquestStudent(13) 36 | // } 37 | } 38 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | org.example 8 | ClassRomeManger 9 | 1.0-SNAPSHOT 10 | 11 | 12 | 8 13 | 8 14 | 15 | 16 | 17 | org.mybatis 18 | mybatis 19 | 3.5.5 20 | 21 | 22 | 23 | mysql 24 | mysql-connector-java 25 | 8.0.23 26 | 27 | 28 | 29 | junit 30 | junit 31 | 4.13.2 32 | test 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Pojo/Manger.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Pojo; 2 | 3 | public class Manger { 4 | private String id; 5 | private String username; 6 | private String mpassword; 7 | 8 | public Manger() { 9 | } 10 | 11 | public Manger(String id, String username, String mpassword) { 12 | this.id = id; 13 | this.username = username; 14 | this.mpassword = mpassword; 15 | } 16 | 17 | @Override 18 | public String toString() { 19 | return "Manger{" + 20 | "id='" + id + '\'' + 21 | ", username='" + username + '\'' + 22 | ", mpassword='" + mpassword + '\'' + 23 | '}'; 24 | } 25 | 26 | public String getId() { 27 | return id; 28 | } 29 | 30 | public void setId(String id) { 31 | this.id = id; 32 | } 33 | 34 | public String getUsername() { 35 | return username; 36 | } 37 | 38 | public void setUsername(String username) { 39 | this.username = username; 40 | } 41 | 42 | public String getMpassword() { 43 | return mpassword; 44 | } 45 | 46 | public void setMpassword(String mpassword) { 47 | this.mpassword = mpassword; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Pojo/Teacher.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Pojo; 2 | 3 | public class Teacher { 4 | // 创建教师对象 5 | 6 | private String tname; 7 | private String worknumber; 8 | private String tdept; 9 | private String tpassword; 10 | 11 | public Teacher() { 12 | } 13 | 14 | public Teacher(String tname, String worknumber, String tdept, String tpassword) { 15 | 16 | this.tname = tname; 17 | this.worknumber = worknumber; 18 | this.tdept = tdept; 19 | this.tpassword = tpassword; 20 | } 21 | 22 | @Override 23 | public String toString() { 24 | return "Teacher{" + 25 | "tname='" + tname + '\'' + 26 | ", worknumber='" + worknumber + '\'' + 27 | ", tdept='" + tdept + '\'' + 28 | ", tpassword='" + tpassword + '\'' + 29 | '}'; 30 | } 31 | 32 | public String getTname() { 33 | return tname; 34 | } 35 | 36 | public void setTname(String tname) { 37 | this.tname = tname; 38 | } 39 | 40 | public String getWorknumber() { 41 | return worknumber; 42 | } 43 | 44 | public void setWorknumber(String worknumber) { 45 | this.worknumber = worknumber; 46 | } 47 | 48 | public String getTdept() { 49 | return tdept; 50 | } 51 | 52 | public void setTdept(String tdept) { 53 | this.tdept = tdept; 54 | } 55 | 56 | public String getTpassword() { 57 | return tpassword; 58 | } 59 | 60 | public void setTpassword(String tpassword) { 61 | this.tpassword = tpassword; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Pojo/Student.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Pojo; 2 | 3 | public class Student { 4 | 5 | private String studentid; 6 | private String name; 7 | private String sdept; 8 | private String password; 9 | private Integer classnumber; 10 | 11 | public Student() { 12 | } 13 | 14 | public Student( String studentid, String name, String sdept, String password) { 15 | 16 | this.studentid = studentid; 17 | this.name = name; 18 | this.sdept = sdept; 19 | this.password = password; 20 | } 21 | 22 | @Override 23 | public String toString() { 24 | return "Student{" + 25 | "studentid='" + studentid + '\'' + 26 | ", name='" + name + '\'' + 27 | ", sdept='" + sdept + '\'' + 28 | ", password='" + password + '\'' + 29 | ", classnumber=" + classnumber + 30 | '}'; 31 | } 32 | 33 | public String getStudentid() { 34 | return studentid; 35 | } 36 | 37 | public void setStudentid(String studentid) { 38 | this.studentid = studentid; 39 | } 40 | 41 | public String getName() { 42 | return name; 43 | } 44 | 45 | public void setName(String name) { 46 | this.name = name; 47 | } 48 | 49 | public String getSdept() { 50 | return sdept; 51 | } 52 | 53 | public void setSdept(String sdept) { 54 | this.sdept = sdept; 55 | } 56 | 57 | public String getPassword() { 58 | return password; 59 | } 60 | 61 | public void setPassword(String password) { 62 | this.password = password; 63 | } 64 | 65 | public Integer getClassnumber() { 66 | return classnumber; 67 | } 68 | 69 | public void setClassnumber(Integer classnumber) { 70 | this.classnumber = classnumber; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Pojo/Course.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Pojo; 2 | 3 | public class Course { 4 | // 创建课程表 5 | private String id; 6 | private String cname; 7 | private String starttime; 8 | private String endtime; 9 | private String datetime; 10 | private Integer cid; 11 | private Integer tid; 12 | 13 | public Course() { 14 | } 15 | 16 | public Course(String id, String cname, String starttime, String endtime, String datetime, Integer cid, Integer tid) { 17 | this.id = id; 18 | this.cname = cname; 19 | this.starttime = starttime; 20 | this.endtime = endtime; 21 | this.datetime = datetime; 22 | this.cid = cid; 23 | this.tid = tid; 24 | } 25 | 26 | public String getId() { 27 | return id; 28 | } 29 | 30 | public void setId(String id) { 31 | this.id = id; 32 | } 33 | 34 | public String getCname() { 35 | return cname; 36 | } 37 | 38 | public void setCname(String cname) { 39 | this.cname = cname; 40 | } 41 | 42 | public String getStarttime() { 43 | return starttime; 44 | } 45 | 46 | public void setStarttime(String starttime) { 47 | this.starttime = starttime; 48 | } 49 | 50 | public String getEndtime() { 51 | return endtime; 52 | } 53 | 54 | public void setEndtime(String endtime) { 55 | this.endtime = endtime; 56 | } 57 | 58 | public String getDatetime() { 59 | return datetime; 60 | } 61 | 62 | public void setDatetime(String datetime) { 63 | this.datetime = datetime; 64 | } 65 | 66 | public Integer getCid() { 67 | return cid; 68 | } 69 | 70 | public void setCid(Integer cid) { 71 | this.cid = cid; 72 | } 73 | 74 | public Integer getTid() { 75 | return tid; 76 | } 77 | 78 | public void setTid(Integer tid) { 79 | this.tid = tid; 80 | } 81 | 82 | @Override 83 | public String toString() { 84 | return "Course{" + 85 | "id='" + id + '\'' + 86 | ", cname='" + cname + '\'' + 87 | ", starttime='" + starttime + '\'' + 88 | ", endtime='" + endtime + '\'' + 89 | ", datetime='" + datetime + '\'' + 90 | ", cid=" + cid + 91 | ", tid=" + tid + 92 | '}'; 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Pojo/Croom.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Pojo; 2 | 3 | public class Croom { 4 | // 创建教室对象 5 | private String id; 6 | private String foolnumber; 7 | private String roomnumber; 8 | private Integer maxperson; 9 | 10 | public Croom() { 11 | } 12 | 13 | public Croom(String id, String foolnumber, String roomnumber, Integer maxperson) { 14 | this.id = id; 15 | this.foolnumber = foolnumber; 16 | this.roomnumber = roomnumber; 17 | this.maxperson = maxperson; 18 | } 19 | 20 | public String getId() { 21 | return id; 22 | } 23 | 24 | public void setId(String id) { 25 | this.id = id; 26 | } 27 | 28 | public String getFoolnumber() { 29 | return foolnumber; 30 | } 31 | 32 | public void setFoolnumber(String foolnumber) { 33 | this.foolnumber = foolnumber; 34 | } 35 | 36 | public String getRoomnumber() { 37 | return roomnumber; 38 | } 39 | 40 | public void setRoomnumber(String roomnumber) { 41 | this.roomnumber = roomnumber; 42 | } 43 | 44 | public Integer getMaxperson() { 45 | return maxperson; 46 | } 47 | 48 | public void setMaxperson(Integer maxperson) { 49 | this.maxperson = maxperson; 50 | } 51 | 52 | @Override 53 | public String toString() { 54 | return "Croom{" + 55 | "id='" + id + '\'' + 56 | ", foolnumber='" + foolnumber + '\'' + 57 | ", roomnumber='" + roomnumber + '\'' + 58 | ", maxperson=" + maxperson + 59 | '}'; 60 | } 61 | 62 | @Override 63 | public boolean equals(Object o) { 64 | if (this == o) return true; 65 | if (o == null || getClass() != o.getClass()) return false; 66 | 67 | Croom croom = (Croom) o; 68 | 69 | if (foolnumber != null ? !foolnumber.equals(croom.foolnumber) : croom.foolnumber != null) return false; 70 | if (roomnumber != null ? !roomnumber.equals(croom.roomnumber) : croom.roomnumber != null) return false; 71 | return maxperson != null ? maxperson.equals(croom.maxperson) : croom.maxperson == null; 72 | } 73 | 74 | @Override 75 | public int hashCode() { 76 | int result = foolnumber != null ? foolnumber.hashCode() : 0; 77 | result = 31 * result + (roomnumber != null ? roomnumber.hashCode() : 0); 78 | result = 31 * result + (maxperson != null ? maxperson.hashCode() : 0); 79 | return result; 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Pojo/Equipment.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Pojo; 2 | 3 | public class Equipment { 4 | private String id; 5 | private String name; 6 | private Integer number; 7 | private String STATU; 8 | private String decription; 9 | private Integer cid; 10 | private String foolnumber; 11 | private String roomnumber; 12 | 13 | public String getFoolnumber() { 14 | return foolnumber; 15 | } 16 | 17 | public void setFoolnumber(String foolnumber) { 18 | this.foolnumber = foolnumber; 19 | } 20 | 21 | public String getRoomnumber() { 22 | return roomnumber; 23 | } 24 | 25 | public void setRoomnumber(String roomnumber) { 26 | this.roomnumber = roomnumber; 27 | } 28 | 29 | public Equipment() { 30 | } 31 | 32 | public Equipment(String id, String name, Integer number, String STATU, String decription) { 33 | this.id = id; 34 | this.name = name; 35 | this.number = number; 36 | this.STATU = STATU; 37 | this.decription = decription; 38 | } 39 | 40 | public String getId() { 41 | return id; 42 | } 43 | 44 | public void setId(String id) { 45 | this.id = id; 46 | } 47 | 48 | public String getName() { 49 | return name; 50 | } 51 | 52 | public void setName(String name) { 53 | this.name = name; 54 | } 55 | 56 | public Integer getNumber() { 57 | return number; 58 | } 59 | 60 | public void setNumber(Integer number) { 61 | this.number = number; 62 | } 63 | 64 | public String getSTATU() { 65 | return STATU; 66 | } 67 | 68 | public void setSTATU(String STATU) { 69 | this.STATU = STATU; 70 | } 71 | 72 | public String getDecription() { 73 | return decription; 74 | } 75 | 76 | public void setDecription(String decription) { 77 | this.decription = decription; 78 | } 79 | 80 | public Integer getCid() { 81 | return cid; 82 | } 83 | 84 | public void setCid(Integer cid) { 85 | this.cid = cid; 86 | } 87 | 88 | @Override 89 | public String toString() { 90 | return "Equipment{" + 91 | "id=" + id + 92 | ", name='" + name + '\'' + 93 | ", number=" + number + 94 | ", STATU='" + STATU + '\'' + 95 | ", decription='" + decription + '\'' + 96 | ", cid=" + cid + 97 | '}'; 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Until/MyEquipmentbutton.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Until; 2 | 3 | import com.lmx.Pojo.Equipment; 4 | import com.lmx.Service.ServiceManger; 5 | 6 | import javax.swing.*; 7 | import javax.swing.table.DefaultTableModel; 8 | import javax.swing.table.TableCellEditor; 9 | import javax.swing.table.TableCellRenderer; 10 | import java.awt.*; 11 | import java.awt.event.ActionEvent; 12 | import java.awt.event.ActionListener; 13 | import java.io.IOException; 14 | import java.util.ArrayList; 15 | 16 | public class MyEquipmentbutton extends AbstractCellEditor implements TableCellRenderer, ActionListener, TableCellEditor { 17 | private static final long serialVersionUID = 1L; 18 | private DefaultTableModel dm; 19 | private JButton button =null; 20 | public static ArrayList arrayList; 21 | private int row; 22 | 23 | public MyEquipmentbutton(){ 24 | button = new JButton("按钮"); 25 | button.addActionListener(this); 26 | button.setFont(new Font(null,Font.PLAIN,20)); 27 | } 28 | public MyEquipmentbutton(String text, ArrayList arrayList, DefaultTableModel dm){ 29 | this.dm=dm; 30 | // this.arrayList=arrayList; 31 | button = new JButton(text); 32 | button.addActionListener(this); 33 | button.setFont(new Font(null,Font.PLAIN,20)); 34 | } 35 | @Override 36 | public Object getCellEditorValue() { 37 | // TODO Auto-generated method stub 38 | 39 | return null; 40 | } 41 | @Override 42 | public Component getTableCellRendererComponent(JTable table, Object value, 43 | boolean isSelected, boolean hasFocus, int row, int column) { 44 | // TODO Auto-generated method stub 45 | return button; 46 | } 47 | @Override 48 | public void actionPerformed(ActionEvent e) { 49 | // TODO Auto-generated method stub 50 | Equipment equipment = (Equipment) arrayList.get(row); 51 | String id = equipment.getId(); 52 | try { 53 | Integer integer = new ServiceManger().ServiceUpdateEquipmentGood(id); 54 | if (integer!=0){ 55 | Object remove = MyEquipmentbutton.arrayList.remove(row); 56 | dm.removeRow(row); 57 | } 58 | } catch (IOException ioException) { 59 | ioException.printStackTrace(); 60 | } 61 | 62 | 63 | } 64 | @Override 65 | public Component getTableCellEditorComponent(JTable table, Object value, 66 | boolean isSelected, int row, int column) { 67 | // TODO Auto-generated method stub 68 | this.row=row; 69 | return button; 70 | } 71 | 72 | public static void main(String[] args) { 73 | 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Service/ServiceRequest.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Service; 2 | 3 | import com.lmx.Mapper.Mapper; 4 | import com.lmx.Pojo.Equipment; 5 | import com.lmx.Pojo.Request; 6 | import org.apache.ibatis.annotations.Param; 7 | import org.apache.ibatis.io.Resources; 8 | import org.apache.ibatis.session.SqlSession; 9 | import org.apache.ibatis.session.SqlSessionFactory; 10 | import org.apache.ibatis.session.SqlSessionFactoryBuilder; 11 | import org.omg.CORBA.PUBLIC_MEMBER; 12 | 13 | import java.io.IOException; 14 | import java.io.InputStream; 15 | import java.util.ArrayList; 16 | 17 | public class ServiceRequest { 18 | private SqlSessionFactory build; 19 | public ServiceRequest() throws IOException { 20 | String resource = "mybatis-config.xml"; 21 | InputStream inputStream = Resources.getResourceAsStream(resource); 22 | SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); 23 | 24 | build = sqlSessionFactoryBuilder.build(inputStream); 25 | 26 | } 27 | //查找到 教室的id 28 | public String ServiceClassrooid(String fool,String classroom){ 29 | SqlSession sqlSession = this.build.openSession(); 30 | Mapper mapper = sqlSession.getMapper(Mapper.class); 31 | String integer = mapper.SelectCroommumber(fool, classroom); 32 | return integer; 33 | } 34 | // 审批对数据库的操作 35 | public Integer ServiceInsertRequest(Request request){ 36 | SqlSession sqlSession = this.build.openSession(); 37 | Mapper mapper = sqlSession.getMapper(Mapper.class); 38 | Integer integer = mapper.IsertRequest(request.getId(),request.getThing(), request.getDatetime(), request.getStartrequest(), request.getEndrequest(), request.getStatus(), request.getCid(), request.getSid(), request.getTsid()); 39 | sqlSession.commit(); 40 | return integer; 41 | } 42 | public ArrayList ServiceSelectArrylist(String sid){ 43 | SqlSession sqlSession = this.build.openSession(); 44 | Mapper mapper = sqlSession.getMapper(Mapper.class); 45 | ArrayList requests = mapper.SelectRequest(sid); 46 | return requests; 47 | } 48 | 49 | public ArrayList ServiceTeacherSelectArrylist(String sid){ 50 | SqlSession sqlSession = this.build.openSession(); 51 | Mapper mapper = sqlSession.getMapper(Mapper.class); 52 | ArrayList requests = mapper.SelectRequestTeacher(sid); 53 | return requests; 54 | } 55 | // 查找出申报教室的设备信息 56 | public ArrayList ServiceEqument(String floor,String calssroomnumber){ 57 | SqlSession sqlSession = this.build.openSession(); 58 | Mapper mapper = sqlSession.getMapper(Mapper.class); 59 | ArrayList equipments = mapper.SelectEquipment(floor, calssroomnumber); 60 | return equipments; 61 | } 62 | // 更新设备信息 63 | public Integer ServiceUpdateEqument(String name, 64 | Integer status, String decription, 65 | String foolnumber, 66 | String roomnumber){ 67 | System.out.println("传来的name"+name); 68 | SqlSession sqlSession = this.build.openSession(); 69 | Mapper mapper = sqlSession.getMapper(Mapper.class); 70 | Integer integer = mapper.UpdateEquipment(name, status, decription, foolnumber, roomnumber); 71 | sqlSession.commit(); 72 | return integer; 73 | } 74 | 75 | } 76 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Pojo/RequestLog.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Pojo; 2 | 3 | public class RequestLog { 4 | private String id; 5 | private String thing; 6 | private String datetime; 7 | private String startrequest; 8 | private String endrequest; 9 | private String cid; 10 | private String sid; 11 | private String tsid; 12 | private Integer status; 13 | private String mid; 14 | private String foolnumber; 15 | private String roomnumber; 16 | 17 | public RequestLog() { 18 | } 19 | 20 | public String getId() { 21 | return id; 22 | } 23 | 24 | public void setId(String id) { 25 | this.id = id; 26 | } 27 | 28 | public String getThing() { 29 | return thing; 30 | } 31 | 32 | public void setThing(String thing) { 33 | this.thing = thing; 34 | } 35 | 36 | public String getDatetime() { 37 | return datetime; 38 | } 39 | 40 | public void setDatetime(String datetime) { 41 | this.datetime = datetime; 42 | } 43 | 44 | public String getStartrequest() { 45 | return startrequest; 46 | } 47 | 48 | public void setStartrequest(String startrequest) { 49 | this.startrequest = startrequest; 50 | } 51 | 52 | public String getEndrequest() { 53 | return endrequest; 54 | } 55 | 56 | public void setEndrequest(String endrequest) { 57 | this.endrequest = endrequest; 58 | } 59 | 60 | public String getCid() { 61 | return cid; 62 | } 63 | 64 | public void setCid(String cid) { 65 | this.cid = cid; 66 | } 67 | 68 | public String getSid() { 69 | return sid; 70 | } 71 | 72 | public void setSid(String sid) { 73 | this.sid = sid; 74 | } 75 | 76 | public String getTsid() { 77 | return tsid; 78 | } 79 | 80 | public void setTsid(String tsid) { 81 | this.tsid = tsid; 82 | } 83 | 84 | public Integer getStatus() { 85 | return status; 86 | } 87 | 88 | public void setStatus(Integer status) { 89 | this.status = status; 90 | } 91 | 92 | public String getMid() { 93 | return mid; 94 | } 95 | 96 | public void setMid(String mid) { 97 | this.mid = mid; 98 | } 99 | 100 | public String getFoolnumber() { 101 | return foolnumber; 102 | } 103 | 104 | public void setFoolnumber(String foolnumber) { 105 | this.foolnumber = foolnumber; 106 | } 107 | 108 | public String getRoomnumber() { 109 | return roomnumber; 110 | } 111 | 112 | public void setRoomnumber(String roomnumber) { 113 | this.roomnumber = roomnumber; 114 | } 115 | 116 | @Override 117 | public String toString() { 118 | return "RequestLog{" + 119 | "id='" + id + '\'' + 120 | ", thing='" + thing + '\'' + 121 | ", datetime='" + datetime + '\'' + 122 | ", startrequest='" + startrequest + '\'' + 123 | ", endrequest='" + endrequest + '\'' + 124 | ", cid='" + cid + '\'' + 125 | ", sid='" + sid + '\'' + 126 | ", tsid='" + tsid + '\'' + 127 | ", status=" + status + 128 | ", mid='" + mid + '\'' + 129 | ", foolnumber='" + foolnumber + '\'' + 130 | ", roomnumber='" + roomnumber + '\'' + 131 | '}'; 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Service/ServiceManger.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Service; 2 | 3 | import com.lmx.Mapper.Mapper; 4 | import com.lmx.Pojo.Equipment; 5 | import com.lmx.Pojo.Request; 6 | import org.apache.ibatis.io.Resources; 7 | import org.apache.ibatis.session.SqlSession; 8 | import org.apache.ibatis.session.SqlSessionFactory; 9 | import org.apache.ibatis.session.SqlSessionFactoryBuilder; 10 | import org.omg.CORBA.PUBLIC_MEMBER; 11 | 12 | import java.io.IOException; 13 | import java.io.InputStream; 14 | import java.util.ArrayList; 15 | 16 | public class ServiceManger { 17 | // 管理员对数据库的操作 18 | private SqlSessionFactory build; 19 | 20 | public ServiceManger() throws IOException { 21 | String resource = "mybatis-config.xml"; 22 | InputStream inputStream = Resources.getResourceAsStream(resource); 23 | SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); 24 | 25 | build = sqlSessionFactoryBuilder.build(inputStream); 26 | 27 | } 28 | // 找到所有的学生审批 29 | public ArrayList ServiceSelectRequestToManger(){ 30 | SqlSession sqlSession = this.build.openSession(); 31 | Mapper mapper = sqlSession.getMapper(Mapper.class); 32 | ArrayList requests = mapper.SelectRequsrtToManger(); 33 | return requests; 34 | } 35 | // 找到所有的老师审批 36 | public ArrayList ServiceSelectRequestTeacherToManger(){ 37 | SqlSession sqlSession = this.build.openSession(); 38 | Mapper mapper = sqlSession.getMapper(Mapper.class); 39 | ArrayList requests = mapper.SelectRequestTeacherTomanger(); 40 | return requests; 41 | } 42 | // 查找所有的坏的设备 43 | public ArrayList ServiceSelectBadEquipment(){ 44 | SqlSession sqlSession = this.build.openSession(); 45 | Mapper mapper = sqlSession.getMapper(Mapper.class); 46 | ArrayList equipment = mapper.SelectEquipmentBad(); 47 | return equipment; 48 | } 49 | // 报修好的设备 50 | public Integer ServiceUpdateEquipmentGood(String id){ 51 | SqlSession sqlSession = this.build.openSession(); 52 | Mapper mapper = sqlSession.getMapper(Mapper.class); 53 | Integer integer = mapper.UpdateEquipmentGood(id); 54 | sqlSession.commit(); 55 | return integer; 56 | } 57 | // 学生审批1-正在审核2-通过3-驳回 58 | public Integer ServiceUpdateTracherRqquestStudent(String id,Integer status,String mid){ 59 | SqlSession sqlSession = this.build.openSession(); 60 | Mapper mapper = sqlSession.getMapper(Mapper.class); 61 | Integer integer = mapper.UpdateTracherRqquestStudent(id,status,mid); 62 | sqlSession.commit(); 63 | return integer; 64 | } 65 | // 66 | // 老师审批结果,1-正在审核2-通过3-驳回 67 | public Integer ServiceUpdateTracherRqquestTeacher(String id,Integer status){ 68 | SqlSession sqlSession = this.build.openSession(); 69 | Mapper mapper = sqlSession.getMapper(Mapper.class); 70 | Integer integer = mapper.UpdateTracherRqquestTeacher(id,status); 71 | sqlSession.commit(); 72 | return integer; 73 | } 74 | // 查询出已审批的结果 75 | public ArrayList ServiceSelectAllrequestManger(String id){ 76 | SqlSession sqlSession = this.build.openSession(); 77 | Mapper mapper = sqlSession.getMapper(Mapper.class); 78 | ArrayList requests = mapper.SelectrequestMananger(id); 79 | ArrayList requests1 = mapper.SelectrequestMangerTeacher(id); 80 | requests.addAll(requests1); 81 | System.out.println(requests); 82 | return requests; 83 | } 84 | public Integer ServiceDelectRequest(String id){ 85 | SqlSession sqlSession = this.build.openSession(); 86 | Mapper mapper = sqlSession.getMapper(Mapper.class); 87 | Integer integer = mapper.DelectRequest(id); 88 | sqlSession.commit(); 89 | return integer; 90 | } 91 | public Integer ServiceDelectRequestmoretime(String datetime,String endtime){ 92 | SqlSession sqlSession = this.build.openSession(); 93 | Mapper mapper = sqlSession.getMapper(Mapper.class); 94 | Integer integer = mapper.DelectRequestmoretime(datetime,endtime); 95 | sqlSession.commit(); 96 | return integer; 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Until/MyShengpibutton.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Until; 2 | 3 | import com.lmx.Pojo.Request; 4 | import com.lmx.Service.ServiceManger; 5 | 6 | import javax.swing.*; 7 | import javax.swing.table.DefaultTableModel; 8 | import javax.swing.table.TableCellEditor; 9 | import javax.swing.table.TableCellRenderer; 10 | import java.awt.*; 11 | import java.awt.event.ActionEvent; 12 | import java.awt.event.ActionListener; 13 | import java.io.IOException; 14 | import java.util.ArrayList; 15 | 16 | public class MyShengpibutton extends AbstractCellEditor implements TableCellRenderer, ActionListener, TableCellEditor { 17 | private static final long serialVersionUID = 1L; 18 | private String id; 19 | private Integer flag; 20 | private JButton button =null; 21 | public static ArrayList arrayList; 22 | private int row; 23 | private Integer colum; 24 | private DefaultTableModel dm; 25 | private String text; 26 | public MyShengpibutton(){ 27 | button = new JButton("按钮"); 28 | button.addActionListener(this); 29 | button.setFont(new Font(null,Font.PLAIN,20)); 30 | } 31 | public MyShengpibutton(String text){ 32 | button = new JButton(text); 33 | button.addActionListener(this); 34 | button.setFont(new Font(null,Font.PLAIN,20)); 35 | 36 | } 37 | // 学生的通过与否的按钮 38 | public MyShengpibutton(String text, Integer flag, ArrayList arrayList1, DefaultTableModel dm, String id){ 39 | this.id=id; 40 | this.dm=dm; 41 | // this.arrayList=arrayList1; 42 | // Request request = (Request) arrayList1.get(row); 43 | // Integer status = request.getStatus(); 44 | 45 | this.flag=flag; 46 | button = new JButton(text); 47 | this.text=text; 48 | button.addActionListener(this); 49 | button.setFont(new Font(null,Font.PLAIN,20)); 50 | } 51 | 52 | 53 | @Override 54 | public Object getCellEditorValue() { 55 | // TODO Auto-generated method stub 56 | return null; 57 | } 58 | @Override 59 | public Component getTableCellRendererComponent(JTable table, Object value, 60 | boolean isSelected, boolean hasFocus, int row, int column) { 61 | // TODO Auto-generated method stub 62 | return button; 63 | } 64 | @Override 65 | public void actionPerformed(ActionEvent e) { 66 | System.out.println("点击当前行数是"+row); 67 | Request request = (Request) arrayList.get(row); 68 | String id=request.getId(); 69 | Integer status = request.getStatus(); 70 | try { 71 | 72 | // if (status==2 && text.equals("通过")){ 73 | // JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 74 | // } 75 | // else if (status==3 && text.equals("驳回")){ 76 | // JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 77 | // } 78 | // else { 79 | System.out.println("通过或驳回的id值是"+id); 80 | Integer integer = new ServiceManger().ServiceDelectRequest(id); 81 | System.out.println("受影响的行数"+integer); 82 | System.out.println("通过还是驳回的状态值"+flag); 83 | if (integer!=0){ 84 | Object remove = MyShengpibutton.arrayList.remove(row); 85 | dm.removeRow(row); 86 | } 87 | // } 88 | 89 | 90 | // if (integer==0){ 91 | // JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 92 | // } 93 | 94 | 95 | } catch (IOException ioException) { 96 | ioException.printStackTrace(); 97 | } 98 | // TODO Auto-generated method stub 99 | // JOptionPane.showMessageDialog(null, "渲染器学期", "消息", JOptionPane.OK_OPTION); 100 | 101 | } 102 | @Override 103 | public Component getTableCellEditorComponent(JTable table, Object value, 104 | boolean isSelected, int row, int column) { 105 | // TODO Auto-generated method stub 106 | this.row=row; 107 | this.colum=column; 108 | return button; 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Until/Mybutton.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Until; 2 | 3 | import com.lmx.Pojo.Request; 4 | import com.lmx.Service.ServiceManger; 5 | 6 | import javax.swing.*; 7 | import javax.swing.table.DefaultTableModel; 8 | import javax.swing.table.TableCellEditor; 9 | import javax.swing.table.TableCellRenderer; 10 | import java.awt.*; 11 | import java.awt.event.ActionEvent; 12 | import java.awt.event.ActionListener; 13 | import java.io.IOException; 14 | import java.util.ArrayList; 15 | 16 | public class Mybutton extends AbstractCellEditor implements TableCellRenderer, ActionListener, TableCellEditor { 17 | private static final long serialVersionUID = 1L; 18 | private String mid; 19 | private Integer flag; 20 | private JButton button =null; 21 | public static ArrayList arrayList; 22 | private int row; 23 | private Integer colum; 24 | private DefaultTableModel dm; 25 | private String text; 26 | public Mybutton(){ 27 | button = new JButton("按钮"); 28 | button.addActionListener(this); 29 | button.setFont(new Font(null,Font.PLAIN,20)); 30 | } 31 | public Mybutton(String text){ 32 | button = new JButton(text); 33 | button.addActionListener(this); 34 | button.setFont(new Font(null,Font.PLAIN,20)); 35 | 36 | } 37 | // 学生的通过与否的按钮 38 | public Mybutton(String text, Integer flag, ArrayList arrayList1, DefaultTableModel dm,String mid){ 39 | this.mid=mid; 40 | this.dm=dm; 41 | // this.arrayList=arrayList1; 42 | // Request request = (Request) arrayList1.get(row); 43 | // Integer status = request.getStatus(); 44 | 45 | this.flag=flag; 46 | button = new JButton(text); 47 | this.text=text; 48 | button.addActionListener(this); 49 | button.setFont(new Font(null,Font.PLAIN,20)); 50 | } 51 | 52 | 53 | @Override 54 | public Object getCellEditorValue() { 55 | // TODO Auto-generated method stub 56 | return null; 57 | } 58 | @Override 59 | public Component getTableCellRendererComponent(JTable table, Object value, 60 | boolean isSelected, boolean hasFocus, int row, int column) { 61 | // TODO Auto-generated method stub 62 | return button; 63 | } 64 | @Override 65 | public void actionPerformed(ActionEvent e) { 66 | System.out.println("点击当前行数是"+row); 67 | Request request = (Request) Mybutton.arrayList.get(row); 68 | String id=request.getId(); 69 | Integer status = request.getStatus(); 70 | try { 71 | 72 | // if (status==2 && text.equals("通过")){ 73 | // JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 74 | // } 75 | // else if (status==3 && text.equals("驳回")){ 76 | // JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 77 | // } 78 | // else { 79 | Integer integer = new ServiceManger().ServiceUpdateTracherRqquestStudent(id,flag,mid); 80 | System.out.println("通过或驳回的id值是"+id); 81 | System.out.println("受影响的行数"+integer); 82 | System.out.println("通过还是驳回的状态值"+flag); 83 | if (integer!=0){ 84 | Object remove = Mybutton.arrayList.remove(row); 85 | dm.removeRow(row); 86 | 87 | } 88 | // } 89 | 90 | 91 | // if (integer==0){ 92 | // JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 93 | // } 94 | 95 | 96 | } catch (IOException ioException) { 97 | ioException.printStackTrace(); 98 | } 99 | // TODO Auto-generated method stub 100 | // JOptionPane.showMessageDialog(null, "渲染器学期", "消息", JOptionPane.OK_OPTION); 101 | 102 | } 103 | @Override 104 | public Component getTableCellEditorComponent(JTable table, Object value, 105 | boolean isSelected, int row, int column) { 106 | // TODO Auto-generated method stub 107 | this.row=row; 108 | this.colum=column; 109 | return button; 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Until/MyRecoverbutton.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Until; 2 | 3 | import com.lmx.Pojo.Request; 4 | import com.lmx.Pojo.RequestLog; 5 | import com.lmx.Service.ServiceManger; 6 | import com.lmx.Service.ServiceUser; 7 | 8 | import javax.swing.*; 9 | import javax.swing.table.DefaultTableModel; 10 | import javax.swing.table.TableCellEditor; 11 | import javax.swing.table.TableCellRenderer; 12 | import java.awt.*; 13 | import java.awt.event.ActionEvent; 14 | import java.awt.event.ActionListener; 15 | import java.io.IOException; 16 | import java.util.ArrayList; 17 | 18 | public class MyRecoverbutton extends AbstractCellEditor implements TableCellRenderer, ActionListener, TableCellEditor { 19 | private static final long serialVersionUID = 1L; 20 | private String id; 21 | private Integer flag; 22 | private JButton button =null; 23 | public static ArrayList arrayList; 24 | private int row; 25 | private Integer colum; 26 | private DefaultTableModel dm; 27 | private String text; 28 | public MyRecoverbutton(){ 29 | button = new JButton("按钮"); 30 | button.addActionListener(this); 31 | button.setFont(new Font(null,Font.PLAIN,20)); 32 | } 33 | public MyRecoverbutton(String text){ 34 | button = new JButton(text); 35 | button.addActionListener(this); 36 | button.setFont(new Font(null,Font.PLAIN,20)); 37 | 38 | } 39 | // 学生的通过与否的按钮 40 | public MyRecoverbutton(String text, Integer flag, ArrayList arrayList1, DefaultTableModel dm, String id){ 41 | this.id=id; 42 | this.dm=dm; 43 | // this.arrayList=arrayList1; 44 | // Request request = (Request) arrayList1.get(row); 45 | // Integer status = request.getStatus(); 46 | 47 | this.flag=flag; 48 | button = new JButton(text); 49 | this.text=text; 50 | button.addActionListener(this); 51 | button.setFont(new Font(null,Font.PLAIN,20)); 52 | } 53 | 54 | 55 | @Override 56 | public Object getCellEditorValue() { 57 | // TODO Auto-generated method stub 58 | return null; 59 | } 60 | @Override 61 | public Component getTableCellRendererComponent(JTable table, Object value, 62 | boolean isSelected, boolean hasFocus, int row, int column) { 63 | // TODO Auto-generated method stub 64 | return button; 65 | } 66 | @Override 67 | public void actionPerformed(ActionEvent e) { 68 | System.out.println("点击当前行数是"+row); 69 | RequestLog request = (RequestLog) arrayList.get(row); 70 | String id=request.getId(); 71 | Integer status = request.getStatus(); 72 | try { 73 | 74 | // if (status==2 && text.equals("通过")){ 75 | // JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 76 | // } 77 | // else if (status==3 && text.equals("驳回")){ 78 | // JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 79 | // } 80 | // else { 81 | System.out.println("通过或驳回的id值是"+id); 82 | Integer integer = new ServiceUser().ServiceInsertRequest(request); 83 | System.out.println("受影响的行数"+integer); 84 | System.out.println("通过还是驳回的状态值"+flag); 85 | if (integer!=0){ 86 | Object remove = MyRecoverbutton.arrayList.remove(row); 87 | Integer integer1 = new ServiceUser().ServiceDelectRequestLog(id); 88 | System.out.println("删除的行数是"+integer1); 89 | dm.removeRow(row); 90 | } 91 | // } 92 | 93 | 94 | // if (integer==0){ 95 | // JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 96 | // } 97 | 98 | 99 | } catch (IOException ioException) { 100 | ioException.printStackTrace(); 101 | } 102 | // TODO Auto-generated method stub 103 | // JOptionPane.showMessageDialog(null, "渲染器学期", "消息", JOptionPane.OK_OPTION); 104 | 105 | } 106 | @Override 107 | public Component getTableCellEditorComponent(JTable table, Object value, 108 | boolean isSelected, int row, int column) { 109 | // TODO Auto-generated method stub 110 | this.row=row; 111 | this.colum=column; 112 | return button; 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Until/MyFoundButton.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Until; 2 | 3 | import com.lmx.Pojo.Request; 4 | import com.lmx.Service.ServiceManger; 5 | 6 | import javax.swing.*; 7 | import javax.swing.table.DefaultTableModel; 8 | import javax.swing.table.TableCellEditor; 9 | import javax.swing.table.TableCellRenderer; 10 | import java.awt.*; 11 | import java.awt.event.ActionEvent; 12 | import java.awt.event.ActionListener; 13 | import java.io.IOException; 14 | import java.util.ArrayList; 15 | import java.util.Iterator; 16 | import java.util.ListIterator; 17 | 18 | public class MyFoundButton extends AbstractCellEditor implements TableCellRenderer, ActionListener, TableCellEditor { 19 | private static final long serialVersionUID = 1L; 20 | private String mid; 21 | private Integer flag; 22 | private JButton button =null; 23 | public static ArrayList arrayList; 24 | private int row; 25 | private Integer colum; 26 | private DefaultTableModel dm; 27 | private String text; 28 | public MyFoundButton(){ 29 | button = new JButton("按钮"); 30 | button.addActionListener(this); 31 | button.setFont(new Font(null,Font.PLAIN,20)); 32 | } 33 | public MyFoundButton(String text){ 34 | button = new JButton(text); 35 | button.addActionListener(this); 36 | button.setFont(new Font(null,Font.PLAIN,20)); 37 | 38 | } 39 | // 学生的通过与否的按钮 40 | public MyFoundButton(String text, Integer flag,DefaultTableModel dm, String mid){ 41 | this.mid=mid; 42 | this.dm=dm; 43 | // this.arrayList=arrayList1; 44 | // Request request = (Request) arrayList1.get(row); 45 | // Integer status = request.getStatus(); 46 | 47 | this.flag=flag; 48 | button = new JButton(text); 49 | this.text=text; 50 | button.addActionListener(this); 51 | button.setFont(new Font(null,Font.PLAIN,20)); 52 | } 53 | 54 | 55 | @Override 56 | public Object getCellEditorValue() { 57 | // TODO Auto-generated method stub 58 | return null; 59 | } 60 | @Override 61 | public Component getTableCellRendererComponent(JTable table, Object value, 62 | boolean isSelected, boolean hasFocus, int row, int column) { 63 | // TODO Auto-generated method stub 64 | return button; 65 | } 66 | @Override 67 | public void actionPerformed(ActionEvent e) { 68 | System.out.println("点击当前行数是"+row); 69 | Request request = (Request) MyFoundButton.arrayList.get(row); 70 | String id=request.getId(); 71 | Integer status = request.getStatus(); 72 | try { 73 | 74 | if (status==2 && text.equals("通过")){ 75 | JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 76 | } 77 | else if (status==3 && text.equals("驳回")){ 78 | JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 79 | } 80 | else { 81 | Integer integer = new ServiceManger().ServiceUpdateTracherRqquestStudent(id, flag,mid); 82 | System.out.println("通过或驳回的id值是"+id); 83 | // System.out.println("受影响的行数"+integer); 84 | // System.out.println("通过还是驳回的状态值"+flag); 85 | if (integer!=0){ 86 | System.out.println("删除前的元素"+MyFoundButton.arrayList); 87 | // Iterator iterator = MyFoundButton.arrayList.iterator(); 88 | // System.out.println(iterator.toString()); 89 | System.out.println("待删除的元素位置"+row); 90 | 91 | Object remove = MyFoundButton.arrayList.remove(row); 92 | 93 | System.out.println("删除后的元素"+MyFoundButton.arrayList); 94 | // boolean remove = MyFoundButton.arrayList.remove(row); 95 | // System.out.println(remove); 96 | dm.removeRow(row); 97 | } 98 | } 99 | 100 | 101 | // if (integer==0){ 102 | // JOptionPane.showMessageDialog(null,"无效操作,请不要重复点击","消息",JOptionPane.OK_OPTION); 103 | // } 104 | 105 | 106 | } catch (IOException ioException) { 107 | ioException.printStackTrace(); 108 | } 109 | // TODO Auto-generated method stub 110 | // JOptionPane.showMessageDialog(null, "渲染器学期", "消息", JOptionPane.OK_OPTION); 111 | 112 | } 113 | @Override 114 | public Component getTableCellEditorComponent(JTable table, Object value, 115 | boolean isSelected, int row, int column) { 116 | // TODO Auto-generated method stub 117 | System.out.println(row); 118 | this.row=row; 119 | this.colum=column; 120 | return button; 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Pojo/Request.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Pojo; 2 | 3 | public class Request{ 4 | private String id; 5 | private String thing; 6 | private String datetime; 7 | private String startrequest; 8 | private String endrequest; 9 | private Integer status; 10 | private String foolnumber; 11 | private String roomnumber; 12 | private String name ;//姓名 13 | private String sdept;//部门 14 | private String studentid;//学号 15 | private String tname;//老师姓名 16 | private String worknumber;//老师工号 17 | private String tdept;//教师所属部门 18 | private String mid; 19 | private String cid; 20 | private String sid; 21 | private String tsid; 22 | 23 | public Request() { 24 | } 25 | 26 | @Override 27 | public String toString() { 28 | return "Request{" + 29 | "id='" + id + '\'' + 30 | ", thing='" + thing + '\'' + 31 | ", datetime='" + datetime + '\'' + 32 | ", startrequest='" + startrequest + '\'' + 33 | ", endrequest='" + endrequest + '\'' + 34 | ", status=" + status + 35 | ", foolnumber='" + foolnumber + '\'' + 36 | ", roomnumber='" + roomnumber + '\'' + 37 | ", name='" + name + '\'' + 38 | ", sdept='" + sdept + '\'' + 39 | ", studentid='" + studentid + '\'' + 40 | ", tname='" + tname + '\'' + 41 | ", worknumber='" + worknumber + '\'' + 42 | ", tdept='" + tdept + '\'' + 43 | ", mid='" + mid + '\'' + 44 | ", cid='" + cid + '\'' + 45 | ", sid='" + sid + '\'' + 46 | ", tsid='" + tsid + '\'' + 47 | '}'; 48 | } 49 | 50 | public String getId() { 51 | return id; 52 | } 53 | 54 | public void setId(String id) { 55 | this.id = id; 56 | } 57 | 58 | public String getThing() { 59 | return thing; 60 | } 61 | 62 | public void setThing(String thing) { 63 | this.thing = thing; 64 | } 65 | 66 | public String getDatetime() { 67 | return datetime; 68 | } 69 | 70 | public void setDatetime(String datetime) { 71 | this.datetime = datetime; 72 | } 73 | 74 | public String getStartrequest() { 75 | return startrequest; 76 | } 77 | 78 | public void setStartrequest(String startrequest) { 79 | this.startrequest = startrequest; 80 | } 81 | 82 | public String getEndrequest() { 83 | return endrequest; 84 | } 85 | 86 | public void setEndrequest(String endrequest) { 87 | this.endrequest = endrequest; 88 | } 89 | 90 | public Integer getStatus() { 91 | return status; 92 | } 93 | 94 | public void setStatus(Integer status) { 95 | this.status = status; 96 | } 97 | 98 | public String getFoolnumber() { 99 | return foolnumber; 100 | } 101 | 102 | public void setFoolnumber(String foolnumber) { 103 | this.foolnumber = foolnumber; 104 | } 105 | 106 | public String getRoomnumber() { 107 | return roomnumber; 108 | } 109 | 110 | public void setRoomnumber(String roomnumber) { 111 | this.roomnumber = roomnumber; 112 | } 113 | 114 | public String getName() { 115 | return name; 116 | } 117 | 118 | public void setName(String name) { 119 | this.name = name; 120 | } 121 | 122 | public String getSdept() { 123 | return sdept; 124 | } 125 | 126 | public void setSdept(String sdept) { 127 | this.sdept = sdept; 128 | } 129 | 130 | public String getStudentid() { 131 | return studentid; 132 | } 133 | 134 | public void setStudentid(String studentid) { 135 | this.studentid = studentid; 136 | } 137 | 138 | public String getTname() { 139 | return tname; 140 | } 141 | 142 | public void setTname(String tname) { 143 | this.tname = tname; 144 | } 145 | 146 | public String getWorknumber() { 147 | return worknumber; 148 | } 149 | 150 | public void setWorknumber(String worknumber) { 151 | this.worknumber = worknumber; 152 | } 153 | 154 | public String getTdept() { 155 | return tdept; 156 | } 157 | 158 | public void setTdept(String tdept) { 159 | this.tdept = tdept; 160 | } 161 | 162 | public String getMid() { 163 | return mid; 164 | } 165 | 166 | public void setMid(String mid) { 167 | this.mid = mid; 168 | } 169 | 170 | public String getCid() { 171 | return cid; 172 | } 173 | 174 | public void setCid(String cid) { 175 | this.cid = cid; 176 | } 177 | 178 | public String getSid() { 179 | return sid; 180 | } 181 | 182 | public void setSid(String sid) { 183 | this.sid = sid; 184 | } 185 | 186 | public String getTsid() { 187 | return tsid; 188 | } 189 | 190 | public void setTsid(String tsid) { 191 | this.tsid = tsid; 192 | } 193 | } 194 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Mapper/Mapper.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Mapper; 2 | 3 | import com.lmx.Pojo.*; 4 | import org.apache.ibatis.annotations.Param; 5 | import org.apache.ibatis.annotations.Update; 6 | 7 | import java.util.ArrayList; 8 | 9 | public interface Mapper { 10 | // 根据用户名和密码查询学生 11 | String SelectStudent(@Param("studentid") String studentid,@Param("password") String password); 12 | // 根据用户名和密码查询教师 13 | String SelectTeacher(@Param("worknumber") String worknumber, @Param("tpassword") String tpassword); 14 | // 根据用户名和密码查询管理员 15 | String SelectManger(@Param("username") String username, @Param("mpassword") String mpassword); 16 | // 根据日期,开始时间,结束时间,查询空闲教室 17 | ArrayList SelectSparetime(@Param("datetime") String datetime, 18 | @Param("starttime") String starttime,@Param("endtime") String endtimg); 19 | 20 | // 审批教室 21 | //获取教室编号 22 | String SelectCroommumber(@Param("foolnumber") String fllimumber, 23 | @Param("roomnumber") String roomnumber); 24 | // 插入申请 25 | //private String thing; 26 | // private String datetime; 27 | // private String startrequest; 28 | // private String endrequest; 29 | // private Integer status; 30 | // private Integer sid; 31 | // private Integer tsid; 32 | Integer IsertRequest(@Param("id") String id,@Param("thing") String thing, 33 | @Param("datetime") String datetime,@Param("startrequest") String start, 34 | @Param("endrequest") String endrequest,@Param("status") Integer status, 35 | @Param("cid") String cid, 36 | @Param("sid") String sid,@Param("tsid") String tsid 37 | ); 38 | 39 | // 找到自己的审批申请 40 | ArrayList SelectRequest(@Param("sid") String sid); 41 | // 得到某个教室的设备名称 42 | ArrayList SelectEquipment(@Param("foolnumber") String fllimumber, 43 | @Param("roomnumber") String roomnumber); 44 | //更新设备表中的损坏信息 45 | Integer UpdateEquipment(@Param("name") String name,@Param("STATU") 46 | Integer status,@Param("decription") String decription, 47 | @Param("foolnumber") String foolnumber, 48 | @Param("roomnumber") String roomnumber); 49 | // 插入课程 50 | Integer InsertCourse(@Param("id") String id,@Param("cname") String cname,@Param("starttime") String starttime, 51 | @Param("endtime") String endtime,@Param("datetime") String datetime, 52 | @Param("cid") String cid); 53 | // 查找老师的申请信息 54 | ArrayList SelectRequestTeacher(@Param("tsid") String tsid); 55 | // 查找待审批的请求 56 | ArrayList SelectRequsrtToManger(); 57 | // 查找老师审批 58 | ArrayList SelectRequestTeacherTomanger(); 59 | // 查找到所有的报修设备 60 | ArrayList SelectEquipmentBad(); 61 | // 设备修改后报修 62 | Integer UpdateEquipmentGood(@Param("id") String id); 63 | // 教师审批 64 | Integer UpdateTracherRqquestTeacher(@Param("id") String id,@Param("status") Integer status); 65 | // 学生审批 66 | Integer UpdateTracherRqquestStudent(@Param("id") String id,@Param("status") Integer status,@Param("mid") String mid); 67 | // 查找出学生审批结果记录 68 | ArrayList SelectrequestMananger(@Param("id") String id); 69 | //查找老师审批结果 70 | ArrayList SelectrequestMangerTeacher(@Param("id") String id); 71 | // 删除request表中某一行的数据 72 | Integer DelectRequest(@Param("id") String id); 73 | // 查询出request表中的空闲教室 74 | ArrayList SelectRequestKong(@Param("datetime") String datetime,@Param("startrequest")String startrequest, 75 | @Param("endrequest") String endrequest); 76 | // 查询出所有楼号 77 | ArrayList SelectCroom(); 78 | // 查询出楼号下的教室 79 | ArrayList SelectCoomroom(@Param("foolnumber") String foolnumber); 80 | // 验证这个教室是非空 81 | ArrayList SelectRequestCourse(@Param("datetime") String datetime,@Param("startrequest")String startrequest, 82 | @Param("endrequest") String endrequest, 83 | @Param("foolnumber") String foolnumber, 84 | @Param("roomnumber") String roomnumber); 85 | // 验证课程 86 | ArrayList SelectCoursrGuDing(@Param("datetime") String datetime,@Param("starttime")String starttime, 87 | @Param("endtime") String endtime, 88 | @Param("foolnumber") String foolnumber, 89 | @Param("roomnumber") String roomnumber); 90 | //删除需求表中超过时间的地方 91 | Integer DelectRequestmoretime(@Param("datetime") String datetime,@Param("endrequest") String endrequest); 92 | // 查询出学生日志表中误删的东西 93 | ArrayList Selectrequestlog(@Param("sid") String sid); 94 | ArrayList SelectrequestlogTeacher(@Param("tsid") String tsid); 95 | // 恢复到request表中 96 | Integer InsertRequest(RequestLog requestLog); 97 | // 删除requestlog表中的数据 98 | Integer DelectRequestLog(@Param("id") String id); 99 | // 插入连接表中 100 | Integer InsertTeaCou(@Param("tsid")String tsid,@Param("coid") String coid); 101 | } 102 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/View/Login/LoginSwing.java: -------------------------------------------------------------------------------- 1 | package com.lmx.View.Login; 2 | 3 | import com.lmx.Pojo.Student; 4 | import com.lmx.Service.ServiceManger; 5 | import com.lmx.Until.LoginUntil; 6 | import com.lmx.View.Person.ManangerLogin; 7 | import com.lmx.View.Person.Studentlogin; 8 | import com.lmx.View.Person.Teacherlogin; 9 | 10 | import javax.swing.*; 11 | import java.awt.*; 12 | import java.awt.event.ActionEvent; 13 | import java.awt.event.ActionListener; 14 | import java.io.IOException; 15 | import java.text.SimpleDateFormat; 16 | import java.util.Date; 17 | 18 | public class LoginSwing extends JFrame { 19 | private JPanel jPanel; 20 | public LoginSwing() throws HeadlessException { 21 | // 初始化窗体程序 22 | this.init(); 23 | } 24 | 25 | protected void init() { 26 | // 设置大小与位置 27 | this.setTitle("教室信息管理系统"); 28 | this.setSize(700,700); 29 | 30 | this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 31 | setLocationRelativeTo(null); 32 | this.setResizable(false); 33 | 34 | this.setlogin(); 35 | this.setVisible(true); 36 | } 37 | 38 | private void setlogin() { 39 | // 设置用户角色 40 | JPanel jPanel = new JPanel(); 41 | jPanel.setLayout(null); 42 | JLabel jLabel = new JLabel("欢迎来到教室信息管理系统"); 43 | jLabel.setBounds(160,30,400,40); 44 | jLabel.setFont(new Font("",Font.BOLD,30)); 45 | jPanel.add(jLabel); 46 | // 用户角色 47 | JLabel userLabel = new JLabel("角色:"); 48 | userLabel.setBounds(150,200,80,25); 49 | userLabel.setFont(new Font("",Font.BOLD,25)); 50 | jPanel.add(userLabel); 51 | //定义下拉菜单 52 | JComboBox box = new JComboBox<>(); 53 | box.addItem("管理员"); 54 | box.addItem("教师"); 55 | box.addItem("学生"); 56 | box.setBounds(230,200,300,30); 57 | box.setFont(new Font("",Font.BOLD,23)); 58 | jPanel.add(box); 59 | // 用户角色 60 | JLabel username = new JLabel("姓名:"); 61 | username.setBounds(150,240,80,25); 62 | username.setFont(new Font("",Font.BOLD,25)); 63 | jPanel.add(username); 64 | // 定义输入框 65 | JTextField jTextField = new JTextField(); 66 | jTextField.setBounds(230,240,300,30); 67 | jTextField.setFont(new Font(null,Font.BOLD,25)); 68 | jPanel.add(jTextField); 69 | // 用户角色 70 | JLabel passname = new JLabel("密码:"); 71 | passname.setBounds(150,280,80,25); 72 | passname.setFont(new Font("",Font.BOLD,25)); 73 | jPanel.add(passname); 74 | // 定义密码框 75 | JPasswordField password = new JPasswordField(); 76 | password.setBounds(230,280,300,30); 77 | password.setFont(new Font(null,Font.BOLD,25)); 78 | jPanel.add(password); 79 | // 定义确认按钮 80 | JButton queren = new JButton("确定"); 81 | queren.setBounds(150,400,100,30); 82 | queren.setFont(new Font(null,Font.BOLD,25)); 83 | jPanel.add(queren); 84 | // 定义取消按钮 85 | JButton quxiao=new JButton("取消"); 86 | quxiao.setBounds(450,400,100,30); 87 | quxiao.setFont(new Font(null,Font.BOLD,25)); 88 | // 确认键的监听事件 89 | queren.addActionListener(new ActionListener() { 90 | @Override 91 | public void actionPerformed(ActionEvent e) { 92 | String mananger = box.getSelectedItem().toString();//管理员 93 | String username = jTextField.getText(); 94 | String ps=new String(password.getPassword()); 95 | System.out.println(mananger); 96 | System.out.println(username); 97 | System.out.println(ps); 98 | try { 99 | String success = LoginUntil.success(mananger, username, ps); 100 | if (success!=null){ 101 | System.out.println("成功"); 102 | quren(success,mananger); 103 | } 104 | else { 105 | JOptionPane.showMessageDialog(null,"用户名或密码错误","消息",JOptionPane.OK_OPTION); 106 | } 107 | } catch (IOException ioException) { 108 | ioException.printStackTrace(); 109 | } 110 | 111 | } 112 | }); 113 | // 取消键的监听事件 114 | quxiao.addActionListener(new ActionListener() { 115 | @Override 116 | public void actionPerformed(ActionEvent e) { 117 | destiry(); 118 | 119 | } 120 | }); 121 | jPanel.add(quxiao); 122 | // 添加面板到框架 123 | this.setContentPane(jPanel); 124 | 125 | } 126 | //销毁 127 | 128 | private void destiry(){ 129 | System.exit(0); 130 | } 131 | // 确认键 132 | private void quren(String id,String manager){ 133 | // 134 | if (manager.equals("学生")){ 135 | dispose(); 136 | Studentlogin studentlogin = new Studentlogin(id); 137 | } 138 | else if (manager.equals("教师")){ 139 | dispose(); 140 | Teacherlogin teacherlogin = new Teacherlogin(id); 141 | } 142 | else { 143 | //管理员的界面 144 | dispose(); 145 | ManangerLogin manangerLogin = new ManangerLogin(id); 146 | } 147 | 148 | } 149 | public static void main(String[] args) throws IOException { 150 | Date day=new Date(); 151 | SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 152 | SimpleDateFormat time = new SimpleDateFormat("HH:mm"); 153 | String format = df.format(day); 154 | String format1 = time.format(day); 155 | 156 | 157 | 158 | System.out.println(format); 159 | System.out.println(format1); 160 | int integer = new ServiceManger().ServiceDelectRequestmoretime(format,format1); 161 | System.out.println(integer); 162 | LoginSwing loginSwing = new LoginSwing(); 163 | } 164 | } 165 | 166 | 167 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/Service/ServiceUser.java: -------------------------------------------------------------------------------- 1 | package com.lmx.Service; 2 | 3 | import com.lmx.Mapper.Mapper; 4 | import com.lmx.Pojo.*; 5 | import org.apache.ibatis.annotations.Param; 6 | import org.apache.ibatis.io.Resources; 7 | import org.apache.ibatis.session.SqlSession; 8 | import org.apache.ibatis.session.SqlSessionFactory; 9 | import org.apache.ibatis.session.SqlSessionFactoryBuilder; 10 | 11 | import java.io.IOException; 12 | import java.io.InputStream; 13 | import java.util.ArrayList; 14 | import java.util.HashSet; 15 | 16 | public class ServiceUser { 17 | // 用户模块对数据库的操作 18 | 19 | private SqlSessionFactory build; 20 | 21 | public ServiceUser() throws IOException { 22 | String resource = "mybatis-config.xml"; 23 | InputStream inputStream = Resources.getResourceAsStream(resource); 24 | SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); 25 | 26 | build = sqlSessionFactoryBuilder.build(inputStream); 27 | 28 | } 29 | // 查找登录进来学生的id 30 | public String ServieSelectStudent(String username,String password){ 31 | SqlSession sqlSession = this.build.openSession(); 32 | Mapper mapper = sqlSession.getMapper(Mapper.class); 33 | String i = mapper.SelectStudent(username, password); 34 | return i; 35 | } 36 | // 查找登录进来老师的id 37 | public String ServieSelectTeacher(String username,String password){ 38 | SqlSession sqlSession = this.build.openSession(); 39 | Mapper mapper = sqlSession.getMapper(Mapper.class); 40 | String i = mapper.SelectTeacher(username, password); 41 | return i; 42 | 43 | } 44 | // 查找登录进来管理员的id 45 | public String ServieSelectManger(String username, String password){ 46 | SqlSession sqlSession = this.build.openSession(); 47 | Mapper mapper = sqlSession.getMapper(Mapper.class); 48 | String i = mapper.SelectManger(username, password); 49 | return i; 50 | } 51 | //根据日期查找空闲教室 52 | public HashSet ServiceSelectspareclassroom(String date, String starttime, String endtime){ 53 | HashSet objects = new HashSet<>(); 54 | SqlSession sqlSession = this.build.openSession(); 55 | Mapper mapper = sqlSession.getMapper(Mapper.class); 56 | ArrayList crooms = mapper.SelectSparetime(date, starttime, endtime); 57 | ArrayList crooms1 = mapper.SelectRequestKong(date, starttime, endtime); 58 | crooms.addAll(crooms1); 59 | for (Croom c:crooms){ 60 | objects.add(c); 61 | } 62 | return objects; 63 | 64 | } 65 | // 插入课程 66 | public Integer ServiceInsertCourse(String id,String cname, String starttime, 67 | String endtime, String datetime, 68 | String cid, String tid){ 69 | SqlSession sqlSession = this.build.openSession(); 70 | Mapper mapper = sqlSession.getMapper(Mapper.class); 71 | int integer = mapper.InsertCourse( id,cname, starttime, endtime, datetime, cid); 72 | if (integer>0){ 73 | Integer integer1 = mapper.InsertTeaCou(tid, id); 74 | } 75 | sqlSession.commit(); 76 | return integer; 77 | } 78 | // 查找楼号 79 | public ArrayList ServiceSelectCroom(){ 80 | SqlSession sqlSession = this.build.openSession(); 81 | Mapper mapper = sqlSession.getMapper(Mapper.class); 82 | ArrayList strings = mapper.SelectCroom(); 83 | return strings; 84 | } 85 | // 查找所有教室 86 | public ArrayList ServiceSelectCoomroom(String roomnumber){ 87 | SqlSession sqlSession = this.build.openSession(); 88 | Mapper mapper = sqlSession.getMapper(Mapper.class); 89 | ArrayList strings = mapper.SelectCoomroom(roomnumber); 90 | return strings; 91 | } 92 | // 验证是否这个时间段没有课程没有活动 93 | public ArrayList ServiceSelectRequestCourse(String datetime,String startrequest, 94 | String endrequest, 95 | String foolnumber, 96 | String roomnumber){ 97 | SqlSession sqlSession = this.build.openSession(); 98 | Mapper mapper = sqlSession.getMapper(Mapper.class); 99 | ArrayList crooms = mapper.SelectRequestCourse(datetime, startrequest, endrequest, foolnumber, roomnumber); 100 | System.out.println("需求表中的信息"+crooms); 101 | 102 | ArrayList crooms1 = mapper.SelectCoursrGuDing(datetime, startrequest, endrequest, foolnumber, roomnumber); 103 | System.out.println("课程表中的信息"+crooms1); 104 | crooms.addAll(crooms1); 105 | return crooms; 106 | } 107 | //查询学生的 108 | public ArrayList ServiceSelectrequestlog(String sid){ 109 | SqlSession sqlSession = this.build.openSession(); 110 | Mapper mapper = sqlSession.getMapper(Mapper.class); 111 | ArrayList selectrequestlog = mapper.Selectrequestlog(sid); 112 | return selectrequestlog; 113 | } 114 | // 查询老师的 115 | public ArrayList SelectrequestlogTeacher(String tsid){ 116 | SqlSession sqlSession = this.build.openSession(); 117 | Mapper mapper = sqlSession.getMapper(Mapper.class); 118 | ArrayList selectrequestlog = mapper.SelectrequestlogTeacher(tsid); 119 | return selectrequestlog; 120 | } 121 | // 恢复表 122 | public Integer ServiceInsertRequest(RequestLog requestLog){ 123 | SqlSession sqlSession = this.build.openSession(); 124 | Mapper mapper = sqlSession.getMapper(Mapper.class); 125 | Integer integer = mapper.InsertRequest(requestLog); 126 | sqlSession.commit(); 127 | return integer; 128 | } 129 | // 删除表 130 | public Integer ServiceDelectRequestLog(String id){ 131 | SqlSession sqlSession = this.build.openSession(); 132 | Mapper mapper = sqlSession.getMapper(Mapper.class); 133 | 134 | 135 | Integer integer = mapper.DelectRequestLog(id); 136 | sqlSession.commit(); 137 | return integer; 138 | } 139 | } 140 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/target/classes/com/lmx/Mapper/Mapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | insert into request VALUE(#{id} ,#{thing},#{datetime},#{startrequest}, 8 | #{endrequest},#{cid},#{sid},#{tsid},#{status},null); 9 | 10 | 11 | insert into course values (#{id} ,#{cname},#{starttime},#{endtime},#{datetime},#{cid}); 12 | 13 | 14 | insert into request(id,thing,datetime,startrequest,endrequest,cid,sid,tsid,status,mid) 15 | values (#{id},#{thing},#{datetime},#{startrequest},#{endrequest},#{cid},#{sid},#{tsid} 16 | ,#{status},#{mid}); 17 | 18 | 19 | insert into teacou values (#{tsid},#{coid}); 20 | 21 | 22 | update equipment set STATU=#{STATU},decription=#{decription} where equipment.name=#{name} AND equipment.cid IN 23 | (SELECT id FROM croom WHERE foolnumber=#{foolnumber} AND roomnumber = #{roomnumber}); 24 | 25 | 26 | UPDATE equipment SET STATU=0,decription=NULL WHERE id=#{id}; 27 | 28 | 29 | UPDATE request SET `status`=#{status} WHERE id =#{id}; 30 | 31 | 32 | UPDATE request SET `status`=#{status},mid=#{mid} WHERE id =#{id}; 33 | 34 | 35 | DELETE from request where id=#{id}; 36 | 37 | 38 | {CALL deletemoretime(#{datetime,mode=IN,jdbcType=DATE},#{endrequest,mode=IN,jdbcType=TIME})} 39 | 40 | 41 | delete from requestlog where id=#{id}; 42 | 43 | 46 | 49 | 52 | 57 | 60 | 65 | 70 | 74 | 79 | 83 | 87 | 89 | 92 | 95 | 98 | 101 | 106 | 109 | 112 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/resources/com/lmx/Mapper/Mapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | insert into request VALUE(#{id} ,#{thing},#{datetime},#{startrequest}, 8 | #{endrequest},#{cid},#{sid},#{tsid},#{status},null); 9 | 10 | 11 | insert into course values (#{id} ,#{cname},#{starttime},#{endtime},#{datetime},#{cid}); 12 | 13 | 14 | insert into request(id,thing,datetime,startrequest,endrequest,cid,sid,tsid,status,mid) 15 | values (#{id},#{thing},#{datetime},#{startrequest},#{endrequest},#{cid},#{sid},#{tsid} 16 | ,#{status},#{mid}); 17 | 18 | 19 | insert into teacou values (#{tsid},#{coid}); 20 | 21 | 22 | update equipment set STATU=#{STATU},decription=#{decription} where equipment.name=#{name} AND equipment.cid IN 23 | (SELECT id FROM croom WHERE foolnumber=#{foolnumber} AND roomnumber = #{roomnumber}); 24 | 25 | 26 | UPDATE equipment SET STATU=0,decription=NULL WHERE id=#{id}; 27 | 28 | 29 | UPDATE request SET `status`=#{status} WHERE id =#{id}; 30 | 31 | 32 | UPDATE request SET `status`=#{status},mid=#{mid} WHERE id =#{id}; 33 | 34 | 35 | DELETE from request where id=#{id}; 36 | 37 | 38 | {CALL deletemoretime(#{datetime,mode=IN,jdbcType=DATE},#{endrequest,mode=IN,jdbcType=TIME})} 39 | 40 | 41 | delete from requestlog where id=#{id}; 42 | 43 | 46 | 49 | 52 | 57 | 60 | 65 | 70 | 74 | 79 | 83 | 87 | 89 | 92 | 95 | 98 | 101 | 106 | 109 | 112 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/View/Person/ManangerLogin.java: -------------------------------------------------------------------------------- 1 | package com.lmx.View.Person; 2 | 3 | import com.lmx.Pojo.Equipment; 4 | import com.lmx.Pojo.Request; 5 | import com.lmx.Service.ServiceManger; 6 | import com.lmx.Until.MyEquipmentbutton; 7 | //import com.lmx.Until.MyTeacherbutton; 8 | import com.lmx.Until.MyFoundButton; 9 | import com.lmx.Until.Mybutton; 10 | 11 | import javax.swing.*; 12 | import javax.swing.event.MenuEvent; 13 | import javax.swing.event.MenuListener; 14 | import javax.swing.table.DefaultTableModel; 15 | import javax.swing.table.JTableHeader; 16 | import javax.swing.table.TableColumn; 17 | import java.awt.*; 18 | import java.io.IOException; 19 | import java.util.ArrayList; 20 | import java.util.Vector; 21 | 22 | public class ManangerLogin extends JFrame { 23 | private String id; 24 | private JPanel jPanel=new JPanel(); 25 | public ManangerLogin(){ 26 | this.init(); 27 | 28 | } 29 | public ManangerLogin(String id){ 30 | this.id=id; 31 | this.init(); 32 | } 33 | 34 | private void init() { 35 | this.setTitle("教室信息管理系统"); 36 | this.setSize(1300,700); 37 | 38 | this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 39 | setLocationRelativeTo(null); 40 | this.setResizable(false); 41 | this.setjpanel(); 42 | this.setVisible(true); 43 | } 44 | 45 | private void setjpanel() { 46 | jPanel.setLayout(null); 47 | JLabel jLabel = new JLabel("教室信息管理系统---管理员端"); 48 | jLabel.setBounds(485,30,430,40); 49 | jLabel.setFont(new Font("",Font.BOLD,30)); 50 | jPanel.add(jLabel); 51 | 52 | JMenuBar menuBar = new JMenuBar(); // 创建一个菜单栏 53 | JMenu fileMenu = new JMenu("教师审批"); // 创建一个菜单 54 | fileMenu.setFont(new Font(null,Font.BOLD,20)); 55 | JMenu studentmenu = new JMenu("学生审批"); // 创建一个菜单 56 | studentmenu.setFont(new Font(null,Font.BOLD,20)); 57 | JMenu editMenu = new JMenu("设备"); // 创建一个菜单 58 | 59 | editMenu.setFont(new Font(null,Font.BOLD,20)); 60 | JMenu equment = new JMenu("查找"); // 创建一个菜单 61 | equment.setFont(new Font(null,Font.BOLD,20)); 62 | 63 | menuBar.add(fileMenu); 64 | menuBar.add(studentmenu); 65 | menuBar.add(editMenu); 66 | menuBar.add(equment); 67 | 68 | // 教师审批记录点击事件 69 | fileMenu.addMenuListener(new MenuListener() { 70 | @Override 71 | public void menuSelected(MenuEvent e) { 72 | JScrollPane jScrollPane=new JScrollPane(); 73 | ArrayList res=null; 74 | try { 75 | 76 | res = new ServiceManger().ServiceSelectRequestTeacherToManger(); 77 | System.out.println(res.size()); 78 | } catch (IOException ioException) { 79 | ioException.printStackTrace(); 80 | } 81 | 82 | String columnNames[]={"事项","使用日期","开始时间","结束时间","楼号","教室编号", 83 | "姓名","工号","所属院系","通过","驳回"}; 84 | DefaultTableModel dm = // 重写表格 85 | new DefaultTableModel(columnNames,0); // 列名 86 | JTable jTable = new JTable(dm); 87 | jTable.setFont(new Font(null,Font.PLAIN,18)); 88 | jTable.setRowHeight(25); 89 | JTableHeader tab_header =jTable.getTableHeader(); //获取表头 90 | tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 20)); 91 | tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); 92 | 93 | for (Request r:res){ 94 | Vector objects = new Vector<>(); 95 | objects.add(r.getThing()); 96 | objects.add(r.getDatetime()); 97 | objects.add(r.getStartrequest()); 98 | objects.add(r.getEndrequest()); 99 | objects.add(r.getFoolnumber()); 100 | objects.add(r.getRoomnumber()); 101 | objects.add(r.getTname()); 102 | objects.add(r.getWorknumber()); 103 | objects.add(r.getTdept()); 104 | dm.addRow(objects); 105 | } 106 | Mybutton.arrayList=res; 107 | jTable.getColumnModel().getColumn(9).setCellEditor(new Mybutton("通过",2,res,dm,id)); 108 | jTable.getColumnModel().getColumn(9).setCellRenderer(new Mybutton("通过",2,res,dm,id) ); 109 | jTable.getColumnModel().getColumn(10).setCellEditor(new Mybutton("驳回",3,res,dm,id)); 110 | jTable.getColumnModel().getColumn(10).setCellRenderer(new Mybutton("驳回",3,res,dm,id) ); 111 | 112 | // 显示 113 | jScrollPane.setViewportView(jTable); 114 | setContentPane(jScrollPane); 115 | setVisible(true); 116 | 117 | } 118 | 119 | @Override 120 | public void menuDeselected(MenuEvent e) { 121 | 122 | } 123 | 124 | @Override 125 | public void menuCanceled(MenuEvent e) { 126 | 127 | } 128 | }); 129 | // 学生审批界面 130 | studentmenu.addMenuListener(new MenuListener() { 131 | @Override 132 | public void menuSelected(MenuEvent e) { 133 | JScrollPane jScrollPane=new JScrollPane(); 134 | ArrayList requests=null; 135 | try { 136 | ServiceManger serviceManger = new ServiceManger(); 137 | 138 | requests = serviceManger.ServiceSelectRequestToManger(); 139 | System.out.println(requests); 140 | } catch (IOException ioException) { 141 | ioException.printStackTrace(); 142 | } 143 | 144 | String columnNames[]={"事项","使用日期","开始时间","结束时间","楼号","教室编号", 145 | "姓名","学号","所属院系","通过","驳回"}; 146 | DefaultTableModel dm = // 重写表格 147 | new DefaultTableModel(columnNames,0); // 列名 148 | JTable jTable = new JTable(dm); 149 | jTable.setFont(new Font(null,Font.PLAIN,18)); 150 | jTable.setRowHeight(25); 151 | JTableHeader tab_header =jTable.getTableHeader(); //获取表头 152 | tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 20)); 153 | tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); 154 | 155 | for (Request r:requests){ 156 | Vector objects = new Vector<>(); 157 | objects.add(r.getThing()); 158 | objects.add(r.getDatetime()); 159 | objects.add(r.getStartrequest()); 160 | objects.add(r.getEndrequest()); 161 | objects.add(r.getFoolnumber()); 162 | objects.add(r.getRoomnumber()); 163 | objects.add(r.getName()); 164 | objects.add(r.getStudentid()); 165 | objects.add(r.getSdept()); 166 | dm.addRow(objects); 167 | 168 | } 169 | Mybutton.arrayList=requests; 170 | jTable.getColumnModel().getColumn(9).setCellEditor(new Mybutton("通过",2,requests,dm,id)); 171 | jTable.getColumnModel().getColumn(9).setCellRenderer(new Mybutton("通过",2,requests,dm,id) ); 172 | jTable.getColumnModel().getColumn(10).setCellEditor(new Mybutton("驳回",3,requests,dm,id)); 173 | jTable.getColumnModel().getColumn(10).setCellRenderer(new Mybutton("驳回",3,requests,dm,id) ); 174 | jScrollPane.setViewportView(jTable); 175 | setContentPane(jScrollPane); 176 | setVisible(true); 177 | 178 | } 179 | 180 | @Override 181 | public void menuDeselected(MenuEvent e) { 182 | 183 | } 184 | 185 | @Override 186 | public void menuCanceled(MenuEvent e) { 187 | 188 | } 189 | }); 190 | // 设备按钮 191 | editMenu.addMenuListener(new MenuListener() { 192 | @Override 193 | public void menuSelected(MenuEvent e) { 194 | JScrollPane jScrollPane=new JScrollPane(); 195 | ArrayList res=null; 196 | try { 197 | 198 | res = new ServiceManger().ServiceSelectBadEquipment(); 199 | } catch (IOException ioException) { 200 | ioException.printStackTrace(); 201 | } 202 | 203 | String columnNames[]={"设备名称","数量","描述","楼号","教室编号","已修好"}; 204 | DefaultTableModel dm = // 重写表格 205 | new DefaultTableModel(columnNames,0); // 列名 206 | JTable jTable = new JTable(dm); 207 | jTable.setFont(new Font(null,Font.PLAIN,18)); 208 | jTable.setRowHeight(25); 209 | JTableHeader tab_header =jTable.getTableHeader(); //获取表头 210 | tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 20)); 211 | tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); 212 | for (Equipment r:res){ 213 | Vector objects = new Vector<>(); 214 | objects.add(r.getName()); 215 | objects.add(r.getNumber()); 216 | objects.add(r.getDecription()); 217 | objects.add(r.getFoolnumber()); 218 | objects.add(r.getRoomnumber()); 219 | 220 | dm.addRow(objects); 221 | } 222 | MyEquipmentbutton.arrayList=res; 223 | jTable.getColumnModel().getColumn(5).setCellEditor(new MyEquipmentbutton("已修好",res,dm)); 224 | jTable.getColumnModel().getColumn(5).setCellRenderer(new MyEquipmentbutton("已修好",res,dm) ); 225 | JButton queren = new JButton("确定"); 226 | jScrollPane.setViewportView(jTable); 227 | setContentPane(jScrollPane); 228 | setVisible(true); 229 | 230 | } 231 | 232 | @Override 233 | public void menuDeselected(MenuEvent e) { 234 | 235 | } 236 | 237 | @Override 238 | public void menuCanceled(MenuEvent e) { 239 | 240 | } 241 | }); 242 | // 查找功能的菜单实现 243 | equment.addMenuListener(new MenuListener() { 244 | @Override 245 | public void menuSelected(MenuEvent e) { 246 | try { 247 | JScrollPane jScrollPane=new JScrollPane(); 248 | ArrayList requests = new ServiceManger().ServiceSelectAllrequestManger(id); 249 | System.out.println(requests); 250 | String columnNames[]={"事项","使用日期","开始时间","结束时间","楼号","教室编号", 251 | "姓名","学号/工号","所属院系","状态","操作1","操作2"}; 252 | DefaultTableModel dm = // 重写表格 253 | new DefaultTableModel(columnNames,0); // 列名 254 | JTable jTable = new JTable(dm); 255 | jTable.setFont(new Font(null,Font.PLAIN,18)); 256 | jTable.setRowHeight(25); 257 | JTableHeader tab_header =jTable.getTableHeader(); //获取表头 258 | tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 20)); 259 | tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); 260 | 261 | for (Request r:requests){ 262 | Vector objects = new Vector<>(); 263 | objects.add(r.getThing()); 264 | objects.add(r.getDatetime()); 265 | objects.add(r.getStartrequest()); 266 | objects.add(r.getEndrequest()); 267 | objects.add(r.getFoolnumber()); 268 | objects.add(r.getRoomnumber()); 269 | // 如果是老师 270 | if (r.getSid()!=null){ 271 | objects.add(r.getName()); 272 | objects.add(r.getStudentid()); 273 | objects.add(r.getSdept()); 274 | if (r.getStatus()==2){ 275 | objects.add("已通过"); 276 | } 277 | else { 278 | objects.add("已驳回"); 279 | } 280 | } 281 | else if (r.getTsid()!=null){ 282 | objects.add(r.getTname()); 283 | objects.add(r.getWorknumber()); 284 | objects.add(r.getTdept()); 285 | if (r.getStatus()==3){ 286 | objects.add("已驳回"); 287 | } 288 | else { 289 | objects.add("已通过"); 290 | } 291 | } 292 | 293 | 294 | // objects.add(r.getName()); 295 | // objects.add(r.getStudentid()); 296 | // objects.add(r.getSdept()); 297 | dm.addRow(objects); 298 | 299 | } 300 | MyFoundButton.arrayList=requests; 301 | jTable.getColumnModel().getColumn(10).setCellEditor(new MyFoundButton("通过",2,dm,id)); 302 | jTable.getColumnModel().getColumn(10).setCellRenderer(new MyFoundButton("通过",2,dm,id) ); 303 | jTable.getColumnModel().getColumn(11).setCellEditor(new MyFoundButton("驳回",3,dm,id)); 304 | jTable.getColumnModel().getColumn(11).setCellRenderer(new MyFoundButton("驳回",3,dm,id) ); 305 | jScrollPane.setViewportView(jTable); 306 | setContentPane(jScrollPane); 307 | setVisible(true); 308 | } catch (IOException ioException) { 309 | ioException.printStackTrace(); 310 | } 311 | } 312 | 313 | @Override 314 | public void menuDeselected(MenuEvent e) { 315 | 316 | } 317 | 318 | @Override 319 | public void menuCanceled(MenuEvent e) { 320 | 321 | } 322 | }); 323 | // menuBar.add(helpMenu); 324 | // menuBar.add(quit); 325 | this.setJMenuBar(menuBar); 326 | setContentPane(jPanel); 327 | setVisible(true); 328 | } 329 | 330 | public static void main(String[] args) { 331 | ManangerLogin manangerLogin = new ManangerLogin(); 332 | } 333 | 334 | } 335 | -------------------------------------------------------------------------------- /代码文件/sql/classroom.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Navicat Premium Data Transfer 3 | 4 | Source Server : woshilmx 5 | Source Server Type : MySQL 6 | Source Server Version : 80025 7 | Source Host : localhost:3306 8 | Source Schema : classroom 9 | 10 | Target Server Type : MySQL 11 | Target Server Version : 80025 12 | File Encoding : 65001 13 | 14 | Date: 11/06/2022 12:18:04 15 | */ 16 | 17 | SET NAMES utf8mb4; 18 | SET FOREIGN_KEY_CHECKS = 0; 19 | 20 | -- ---------------------------- 21 | -- Table structure for course 22 | -- ---------------------------- 23 | DROP TABLE IF EXISTS `course`; 24 | CREATE TABLE `course` ( 25 | `id` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 26 | `cname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 27 | `starttime` time(0) NULL DEFAULT NULL, 28 | `endtime` time(0) NULL DEFAULT NULL, 29 | `datetime` date NULL DEFAULT NULL, 30 | `cid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 31 | PRIMARY KEY (`id`) USING BTREE, 32 | UNIQUE INDEX `starttime`(`starttime`, `endtime`, `datetime`, `cid`) USING BTREE, 33 | INDEX `cid_couid`(`cid`) USING BTREE 34 | ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 35 | 36 | -- ---------------------------- 37 | -- Records of course 38 | -- ---------------------------- 39 | INSERT INTO `course` VALUES ('160023', '数据库', '08:00:00', '10:00:00', '2022-06-01', '1'); 40 | INSERT INTO `course` VALUES ('1654608696477', '数据结构', '14:00:00', '16:00:00', '2022-06-10', '7'); 41 | INSERT INTO `course` VALUES ('1654611864702', '数据库原理及其应用', '10:00:00', '12:00:00', '2022-06-15', '4'); 42 | INSERT INTO `course` VALUES ('1654611965914', '计组', '08:00:00', '10:00:00', '2022-06-10', '6'); 43 | INSERT INTO `course` VALUES ('1654687671230', '数据结构', '10:00:00', '12:00:00', '2022-06-10', '9'); 44 | 45 | -- ---------------------------- 46 | -- Table structure for croom 47 | -- ---------------------------- 48 | DROP TABLE IF EXISTS `croom`; 49 | CREATE TABLE `croom` ( 50 | `id` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 51 | `foolnumber` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 52 | `roomnumber` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 53 | `maxperson` int(0) NULL DEFAULT NULL, 54 | PRIMARY KEY (`id`) USING BTREE 55 | ) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 56 | 57 | -- ---------------------------- 58 | -- Records of croom 59 | -- ---------------------------- 60 | INSERT INTO `croom` VALUES ('1', '三行楼', 'A321', 100); 61 | INSERT INTO `croom` VALUES ('2', '三行楼', 'A235', 100); 62 | INSERT INTO `croom` VALUES ('3', '三行楼', 'A307', 100); 63 | INSERT INTO `croom` VALUES ('4', '三行楼', 'A301', 100); 64 | INSERT INTO `croom` VALUES ('5', '三行楼', 'A427', 100); 65 | INSERT INTO `croom` VALUES ('6', '三行楼', 'A429', 100); 66 | INSERT INTO `croom` VALUES ('7', '三行楼', 'A103', 100); 67 | INSERT INTO `croom` VALUES ('8', '三行楼', 'A108', 100); 68 | INSERT INTO `croom` VALUES ('9', '三行楼', 'A223', 100); 69 | 70 | -- ---------------------------- 71 | -- Table structure for equipment 72 | -- ---------------------------- 73 | DROP TABLE IF EXISTS `equipment`; 74 | CREATE TABLE `equipment` ( 75 | `id` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 76 | `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 77 | `number` int(0) NULL DEFAULT NULL, 78 | `cid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 79 | `STATU` int(0) NULL DEFAULT NULL, 80 | `decription` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 81 | PRIMARY KEY (`id`) USING BTREE, 82 | INDEX `c_e`(`cid`) USING BTREE, 83 | CONSTRAINT `equipment_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `croom` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT 84 | ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 85 | 86 | -- ---------------------------- 87 | -- Records of equipment 88 | -- ---------------------------- 89 | INSERT INTO `equipment` VALUES ('1', '台式电脑', 1, '1', 0, NULL); 90 | INSERT INTO `equipment` VALUES ('10', '座椅', 100, '2', 0, NULL); 91 | INSERT INTO `equipment` VALUES ('11', '拖布', 1, '2', 0, NULL); 92 | INSERT INTO `equipment` VALUES ('12', '扫把', 1, '2', 0, NULL); 93 | INSERT INTO `equipment` VALUES ('2', '幕布', 1, '1', 0, NULL); 94 | INSERT INTO `equipment` VALUES ('3', '投影仪', 1, '1', 0, NULL); 95 | INSERT INTO `equipment` VALUES ('4', '座椅', 100, '1', 0, NULL); 96 | INSERT INTO `equipment` VALUES ('5', '拖布', 1, '1', 0, NULL); 97 | INSERT INTO `equipment` VALUES ('6', '扫把', 1, '1', 0, NULL); 98 | INSERT INTO `equipment` VALUES ('7', '台式电脑', 1, '2', 0, NULL); 99 | INSERT INTO `equipment` VALUES ('8', '幕布', 1, '2', 0, NULL); 100 | INSERT INTO `equipment` VALUES ('9', '投影仪', 1, '2', 0, NULL); 101 | 102 | -- ---------------------------- 103 | -- Table structure for manger 104 | -- ---------------------------- 105 | DROP TABLE IF EXISTS `manger`; 106 | CREATE TABLE `manger` ( 107 | `id` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 108 | `username` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 109 | `mpassword` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 110 | PRIMARY KEY (`id`) USING BTREE 111 | ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 112 | 113 | -- ---------------------------- 114 | -- Records of manger 115 | -- ---------------------------- 116 | INSERT INTO `manger` VALUES ('1', 'root', '123456789'); 117 | 118 | -- ---------------------------- 119 | -- Table structure for request 120 | -- ---------------------------- 121 | DROP TABLE IF EXISTS `request`; 122 | CREATE TABLE `request` ( 123 | `id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 124 | `thing` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 125 | `datetime` date NULL DEFAULT NULL, 126 | `startrequest` time(0) NULL DEFAULT NULL, 127 | `endrequest` time(0) NULL DEFAULT NULL, 128 | `cid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 129 | `sid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 130 | `tsid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 131 | `status` int(0) NULL DEFAULT NULL, 132 | `mid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 133 | PRIMARY KEY (`id`) USING BTREE, 134 | UNIQUE INDEX `datetime`(`datetime`, `startrequest`, `endrequest`, `cid`) USING BTREE, 135 | UNIQUE INDEX `datetime_2`(`datetime`, `startrequest`, `endrequest`, `cid`, `status`) USING BTREE, 136 | UNIQUE INDEX `datetime_3`(`datetime`, `startrequest`, `endrequest`, `cid`, `status`) USING BTREE, 137 | INDEX `r_s`(`sid`) USING BTREE, 138 | INDEX `ts_s`(`tsid`) USING BTREE, 139 | INDEX `r_c`(`cid`) USING BTREE, 140 | INDEX `mid`(`mid`) USING BTREE, 141 | CONSTRAINT `request_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `croom` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, 142 | CONSTRAINT `request_ibfk_2` FOREIGN KEY (`sid`) REFERENCES `student` (`studentid`) ON DELETE RESTRICT ON UPDATE RESTRICT, 143 | CONSTRAINT `request_ibfk_3` FOREIGN KEY (`tsid`) REFERENCES `teacher` (`worknumber`) ON DELETE RESTRICT ON UPDATE RESTRICT, 144 | CONSTRAINT `request_ibfk_4` FOREIGN KEY (`mid`) REFERENCES `manger` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT 145 | ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 146 | 147 | -- ---------------------------- 148 | -- Records of request 149 | -- ---------------------------- 150 | INSERT INTO `request` VALUES ('1654678597961', '开会', '2022-06-12', '08:00:00', '10:00:00', '6', '2020151112', NULL, 3, NULL); 151 | INSERT INTO `request` VALUES ('1654686955704', '开会', '2022-06-12', '16:00:00', '18:00:00', '4', '2020151112', NULL, 2, '1'); 152 | INSERT INTO `request` VALUES ('1654687646556', '宣讲', '2022-06-10', '10:00:00', '12:00:00', '7', NULL, '132586123', 2, '1'); 153 | INSERT INTO `request` VALUES ('1654738915020', '活动', '2022-06-10', '10:00:00', '12:00:00', '8', '2020151112', NULL, 2, '1'); 154 | 155 | -- ---------------------------- 156 | -- Table structure for requestlog 157 | -- ---------------------------- 158 | DROP TABLE IF EXISTS `requestlog`; 159 | CREATE TABLE `requestlog` ( 160 | `id` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 161 | `thing` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 162 | `datetime` date NULL DEFAULT NULL, 163 | `startrequest` time(0) NULL DEFAULT NULL, 164 | `endrequest` time(0) NULL DEFAULT NULL, 165 | `cid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 166 | `sid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 167 | `tsid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 168 | `status` int(0) NULL DEFAULT NULL, 169 | `mid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 170 | PRIMARY KEY (`id`) USING BTREE 171 | ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 172 | 173 | -- ---------------------------- 174 | -- Records of requestlog 175 | -- ---------------------------- 176 | 177 | -- ---------------------------- 178 | -- Table structure for student 179 | -- ---------------------------- 180 | DROP TABLE IF EXISTS `student`; 181 | CREATE TABLE `student` ( 182 | `studentid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 183 | `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 184 | `sdept` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 185 | `password` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 186 | PRIMARY KEY (`studentid`) USING BTREE, 187 | UNIQUE INDEX `studentid`(`studentid`) USING BTREE 188 | ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 189 | 190 | -- ---------------------------- 191 | -- Records of student 192 | -- ---------------------------- 193 | INSERT INTO `student` VALUES ('2020151112', '李满祥', '计算机系', '123456789'); 194 | INSERT INTO `student` VALUES ('2020151121', '彭士云', '计算机系', '123456789'); 195 | INSERT INTO `student` VALUES ('2020151128', '王俊强', '计算机系', '123456789'); 196 | INSERT INTO `student` VALUES ('2020151132', '谢聪', '计算机系', '123456789'); 197 | INSERT INTO `student` VALUES ('2020151139', '张蕾', '计算机系', '123456789'); 198 | 199 | -- ---------------------------- 200 | -- Table structure for teacher 201 | -- ---------------------------- 202 | DROP TABLE IF EXISTS `teacher`; 203 | CREATE TABLE `teacher` ( 204 | `worknumber` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 205 | `tname` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 206 | `tdept` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 207 | `tpassword` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, 208 | PRIMARY KEY (`worknumber`) USING BTREE, 209 | UNIQUE INDEX `worknumber`(`worknumber`) USING BTREE 210 | ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 211 | 212 | -- ---------------------------- 213 | -- Records of teacher 214 | -- ---------------------------- 215 | INSERT INTO `teacher` VALUES ('132586123', '赵六', '计算机系', '123456789'); 216 | INSERT INTO `teacher` VALUES ('132586124', '王国超', '数学系', '123456789'); 217 | INSERT INTO `teacher` VALUES ('132586125', '马汉', '舞蹈系', '123456789'); 218 | INSERT INTO `teacher` VALUES ('132586126', '商学', '数学系', '123456789'); 219 | INSERT INTO `teacher` VALUES ('132586127', '李锐', '计算机系', '123456789'); 220 | INSERT INTO `teacher` VALUES ('132586128', '山溪', '物理系', '123456789'); 221 | 222 | -- ---------------------------- 223 | -- Table structure for teacou 224 | -- ---------------------------- 225 | DROP TABLE IF EXISTS `teacou`; 226 | CREATE TABLE `teacou` ( 227 | `tsid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 228 | `coid` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, 229 | PRIMARY KEY (`tsid`, `coid`) USING BTREE, 230 | INDEX `coid`(`coid`) USING BTREE, 231 | CONSTRAINT `teacou_ibfk_1` FOREIGN KEY (`tsid`) REFERENCES `teacher` (`worknumber`) ON DELETE RESTRICT ON UPDATE RESTRICT, 232 | CONSTRAINT `teacou_ibfk_2` FOREIGN KEY (`coid`) REFERENCES `course` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT 233 | ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 234 | 235 | -- ---------------------------- 236 | -- Records of teacou 237 | -- ---------------------------- 238 | INSERT INTO `teacou` VALUES ('132586123', '1654608696477'); 239 | INSERT INTO `teacou` VALUES ('132586123', '1654611864702'); 240 | INSERT INTO `teacou` VALUES ('132586123', '1654611965914'); 241 | INSERT INTO `teacou` VALUES ('132586123', '1654687671230'); 242 | 243 | -- ---------------------------- 244 | -- View structure for crcou 245 | -- ---------------------------- 246 | DROP VIEW IF EXISTS `crcou`; 247 | CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `crcou` AS select distinct `croom`.`id` AS `id`,`course`.`id` AS `courid`,`croom`.`foolnumber` AS `foolnumber`,`croom`.`roomnumber` AS `roomnumber`,`croom`.`maxperson` AS `maxperson`,`course`.`datetime` AS `datetime`,`course`.`starttime` AS `starttime`,`course`.`endtime` AS `endtime` from (`croom` left join `course` on((`croom`.`id` = `course`.`cid`))); 248 | 249 | -- ---------------------------- 250 | -- View structure for crew 251 | -- ---------------------------- 252 | DROP VIEW IF EXISTS `crew`; 253 | CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `crew` AS select `croom`.`foolnumber` AS `foolnumber`,`croom`.`roomnumber` AS `roomnumber`,`croom`.`maxperson` AS `maxperson`,`request`.`datetime` AS `datetime`,`request`.`startrequest` AS `startrequest`,`request`.`endrequest` AS `endrequest`,`request`.`status` AS `status`,`request`.`id` AS `id` from (`croom` left join `request` on((`request`.`cid` = `croom`.`id`))); 254 | 255 | -- ---------------------------- 256 | -- View structure for ct 257 | -- ---------------------------- 258 | DROP VIEW IF EXISTS `ct`; 259 | CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `ct` AS select `course`.`id` AS `id`,`course`.`cname` AS `cname`,`course`.`starttime` AS `starttime`,`course`.`endtime` AS `endtime`,`course`.`datetime` AS `datetime`,`course`.`cid` AS `cid`,`teacou`.`tsid` AS `tsid`,`teacou`.`coid` AS `coid`,`teacher`.`tname` AS `tname`,`teacher`.`worknumber` AS `worknumber`,`teacher`.`tdept` AS `tdept`,`teacher`.`tpassword` AS `tpassword` from ((`course` join `teacou` on((`course`.`id` = `teacou`.`coid`))) join `teacher` on((`teacou`.`tsid` = `teacher`.`worknumber`))); 260 | 261 | -- ---------------------------- 262 | -- Procedure structure for deletemoretime 263 | -- ---------------------------- 264 | DROP PROCEDURE IF EXISTS `deletemoretime`; 265 | delimiter ;; 266 | CREATE PROCEDURE `deletemoretime`(in datetime1 DATE,in endrequest1 TIME) 267 | BEGIN 268 | -- 269 | delete from request where datetime requestLogs = serviceUser.ServiceSelectrequestlog(id); 105 | System.out.println(requestLogs); 106 | String columnNames[]={"申请事项","日期","开始时间","结束时间","楼号","教室编号","恢复"}; 107 | DefaultTableModel dm = // 重写表格 108 | new DefaultTableModel(columnNames,0); // 列名 109 | JTable jTable = new JTable(dm); 110 | jTable.setFont(new Font(null,Font.PLAIN,18)); 111 | jTable.setRowHeight(25); 112 | JTableHeader tab_header =jTable.getTableHeader(); //获取表头 113 | tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 20)); 114 | tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); 115 | for (RequestLog r:requestLogs){ 116 | Vector objects = new Vector<>(); 117 | objects.add(r.getThing()); 118 | objects.add(r.getDatetime()); 119 | objects.add(r.getStartrequest()); 120 | objects.add(r.getEndrequest()); 121 | objects.add(r.getFoolnumber()); 122 | objects.add(r.getRoomnumber()); 123 | 124 | dm.addRow(objects); 125 | 126 | } 127 | MyRecoverbutton.arrayList=requestLogs; 128 | System.out.println("该学生的id是"+id); 129 | jTable.getColumnModel().getColumn(6).setCellEditor(new MyRecoverbutton("恢复",2,requestLogs,dm,id)); 130 | jTable.getColumnModel().getColumn(6).setCellRenderer(new MyRecoverbutton("恢复",2,requestLogs,dm,id) ); 131 | jScrollPane.setViewportView(jTable); 132 | 133 | setContentPane(jScrollPane); 134 | setVisible(true); 135 | 136 | 137 | } catch (IOException ioException) { 138 | ioException.printStackTrace(); 139 | } 140 | } 141 | 142 | @Override 143 | public void menuDeselected(MenuEvent e) { 144 | 145 | } 146 | 147 | @Override 148 | public void menuCanceled(MenuEvent e) { 149 | 150 | } 151 | }); 152 | //添加查询事件 153 | 154 | // quit.addMenuListener(new MenuListener() { 155 | // 156 | // @Override 157 | // public void menuSelected(MenuEvent e) { 158 | // 159 | // } 160 | // 161 | // @Override 162 | // public void menuDeselected(MenuEvent e) { 163 | // System.exit(0); 164 | // } 165 | // 166 | // @Override 167 | // public void menuCanceled(MenuEvent e) { 168 | // 169 | // } 170 | // }); 171 | fileMenu.addMenuListener(new MenuListener() { 172 | @Override 173 | public void menuSelected(MenuEvent e) { 174 | // getTimeclassroom()a 175 | addSelect(); 176 | 177 | 178 | // 179 | // JLabel starttime = new JLabel("开始时间"); 180 | // starttime.setBounds(190,100,400,40); 181 | // starttime.setFont(new Font("",Font.BOLD,20)); 182 | // jPanel.add(date); 183 | // 184 | // JLabel end = new JLabel("结束时间"); 185 | // end.setBounds(220,100,400,40); 186 | // end.setFont(new Font("",Font.BOLD,20)); 187 | // jPanel.add(end); 188 | setContentPane(jPanel); 189 | } 190 | 191 | @Override 192 | public void menuDeselected(MenuEvent e) { 193 | 194 | } 195 | 196 | @Override 197 | public void menuCanceled(MenuEvent e) { 198 | 199 | } 200 | }); 201 | // 添加审批界面 202 | editMenu.addMenuListener(new MenuListener() { 203 | @Override 204 | public void menuSelected(MenuEvent e) { 205 | JPanel jp = null; 206 | try { 207 | jp = addRequestSwing(); 208 | } catch (IOException ioException) { 209 | ioException.printStackTrace(); 210 | } 211 | setContentPane(jp); 212 | setVisible(true); 213 | 214 | } 215 | 216 | @Override 217 | public void menuDeselected(MenuEvent e) { 218 | 219 | } 220 | 221 | @Override 222 | public void menuCanceled(MenuEvent e) { 223 | 224 | } 225 | }); 226 | // 添加我的申请界面 227 | helpMenu.addMenuListener(new MenuListener() { 228 | @Override 229 | public void menuSelected(MenuEvent e) { 230 | JScrollPane jScrollPane=new JScrollPane(); 231 | ArrayList requests = null; 232 | try { 233 | requests = new ServiceRequest().ServiceSelectArrylist(id); 234 | } catch (IOException ioException) { 235 | ioException.printStackTrace(); 236 | } 237 | System.out.println(requests.toString()); 238 | // 239 | String columnNames[]={"申请事项","日期","开始时间","结束时间","楼号","教室编号","审批状态","删除"}; 240 | DefaultTableModel dm = // 重写表格 241 | new DefaultTableModel(columnNames,0); // 列名 242 | JTable jTable = new JTable(dm); 243 | jTable.setFont(new Font(null,Font.PLAIN,18)); 244 | jTable.setRowHeight(25); 245 | JTableHeader tab_header =jTable.getTableHeader(); //获取表头 246 | tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 20)); 247 | tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); 248 | for (Request r:requests){ 249 | Vector objects = new Vector<>(); 250 | objects.add(r.getThing()); 251 | objects.add(r.getDatetime()); 252 | objects.add(r.getStartrequest()); 253 | objects.add(r.getEndrequest()); 254 | objects.add(r.getFoolnumber()); 255 | objects.add(r.getRoomnumber()); 256 | if (r.getStatus()==1){ 257 | objects.add("正在审批"); 258 | 259 | } 260 | else if(r.getStatus()==2){ 261 | objects.add("通过"); 262 | } 263 | else { 264 | objects.add("驳回"); 265 | } 266 | dm.addRow(objects); 267 | 268 | } 269 | MyShengpibutton.arrayList=requests; 270 | System.out.println("该学生的id是"+id); 271 | jTable.getColumnModel().getColumn(7).setCellEditor(new MyShengpibutton("删除",2,requests,dm,id)); 272 | jTable.getColumnModel().getColumn(7).setCellRenderer(new MyShengpibutton("删除",2,requests,dm,id) ); 273 | // 显示 274 | jScrollPane.setViewportView(jTable); 275 | 276 | setContentPane(jScrollPane); 277 | setVisible(true); 278 | } 279 | 280 | @Override 281 | public void menuDeselected(MenuEvent e) { 282 | 283 | } 284 | 285 | @Override 286 | public void menuCanceled(MenuEvent e) { 287 | 288 | } 289 | }); 290 | // 设备申报界面 291 | equment.addMenuListener(new MenuListener() { 292 | @Override 293 | public void menuSelected(MenuEvent e) { 294 | JPanel jPanel = null; 295 | try { 296 | jPanel = addEquipment(); 297 | } catch (IOException ioException) { 298 | ioException.printStackTrace(); 299 | } 300 | setContentPane(jPanel); 301 | setVisible(true); 302 | 303 | } 304 | 305 | @Override 306 | public void menuDeselected(MenuEvent e) { 307 | 308 | } 309 | 310 | @Override 311 | public void menuCanceled(MenuEvent e) { 312 | 313 | } 314 | }); 315 | 316 | 317 | // 添加面板到框架 318 | this.setContentPane(jPanel); 319 | } 320 | // 增加审批的功能按钮 321 | private JPanel addRequestSwing() throws IOException { 322 | JPanel jp = new JPanel(); 323 | jp.setLayout(null); 324 | JLabel jLabel = new JLabel("教室信息管理系统---学生端"); 325 | jLabel.setBounds(160,30,400,40); 326 | jLabel.setFont(new Font("",Font.BOLD,30)); 327 | jp.add(jLabel); 328 | 329 | //申请事项 330 | JLabel thing = new JLabel("申请事项"); 331 | thing.setBounds(100,100,100,40); 332 | thing.setFont(new Font("",Font.BOLD,20)); 333 | jp.add(thing); 334 | // 输入框 335 | JTextArea jTextArea = new JTextArea(); 336 | jTextArea.setFont(new Font(null,Font.PLAIN,20)); 337 | jTextArea.setBounds(230,90,400,60); 338 | jp.add(jTextArea); 339 | // 340 | JLabel use = new JLabel("使用日期"); 341 | use.setBounds(100,170,100,40); 342 | use.setFont(new Font("",Font.BOLD,20)); 343 | jp.add(use); 344 | 345 | JTextField jTextField = new JTextField(); 346 | jTextField.setFont(new Font("",Font.BOLD,20)); 347 | jTextField.setBounds(230,170,200,40); 348 | jp.add(jTextField); 349 | 350 | JLabel sta = new JLabel("开始时间"); 351 | sta.setBounds(100,240,100,40); 352 | sta.setFont(new Font("",Font.BOLD,20)); 353 | jp.add(sta); 354 | 355 | JTextField statext = new JTextField(); 356 | statext.setFont(new Font("",Font.BOLD,20)); 357 | statext.setBounds(230,240,200,40); 358 | jp.add(statext); 359 | 360 | JLabel end = new JLabel("结束时间"); 361 | end.setBounds(100,310,100,40); 362 | end.setFont(new Font("",Font.BOLD,20)); 363 | jp.add(end); 364 | 365 | JTextField endtext = new JTextField(); 366 | endtext.setFont(new Font("",Font.BOLD,20)); 367 | endtext.setBounds(230,310,200,40); 368 | jp.add(endtext); 369 | 370 | JLabel classroom = new JLabel("楼号"); 371 | classroom.setBounds(100,370,100,40); 372 | classroom.setFont(new Font("",Font.BOLD,20)); 373 | jp.add(classroom); 374 | 375 | // JTextField ca= new JTextField(); 376 | // ca.setFont(new Font("",Font.BOLD,20)); 377 | // ca.setBounds(230,370,200,40); 378 | // jp.add(ca); 379 | ArrayList strings = new ServiceUser().ServiceSelectCroom(); 380 | String[] strings1 = strings.toArray(new String[strings.size()]); 381 | JComboBox ca = new JComboBox<>(strings1); 382 | ca.setFont(new Font("",Font.BOLD,20)); 383 | ca.setBounds(230,370,200,40); 384 | ca.setSelectedIndex(-1); 385 | jp.add(ca); 386 | 387 | 388 | JLabel jiaoshi = new JLabel("教室编号"); 389 | jiaoshi.setBounds(100,430,100,40); 390 | jiaoshi.setFont(new Font("",Font.BOLD,20)); 391 | jp.add(jiaoshi); 392 | 393 | // JTextField jiao= new JTextField(); 394 | // jiao.setFont(new Font("",Font.BOLD,20)); 395 | // jiao.setBounds(230,430,200,40); 396 | // jp.add(jiao); 397 | JComboBox jiao = new JComboBox<>(); 398 | jiao.setFont(new Font("",Font.BOLD,20)); 399 | jiao.setBounds(230,430,200,40); 400 | jp.add(jiao); 401 | 402 | ca.addItemListener(new ItemListener() { 403 | @Override 404 | public void itemStateChanged(ItemEvent e) { 405 | String s = ca.getSelectedItem().toString(); 406 | System.out.println(s); 407 | try { 408 | ArrayList strings2 = new ServiceUser().ServiceSelectCoomroom(s); 409 | for (String s1:strings2){ 410 | jiao.addItem(s1); 411 | } 412 | } catch (IOException ioException) { 413 | ioException.printStackTrace(); 414 | } 415 | 416 | } 417 | }); 418 | // new Thread(new Runnable() { 419 | // @Override 420 | // public void run() { 421 | // while (true){ 422 | // if (ca.getSelectedItem()!=null){ 423 | // try { 424 | // ArrayList strings2 = new ServiceUser().ServiceSelectCoomroom(ca.getSelectedItem().toString()); 425 | // for (String s:strings2){ 426 | // jiao.addItem(s); 427 | // } 428 | // 429 | // } catch (IOException e) { 430 | // e.printStackTrace(); 431 | // } 432 | // 433 | // } 434 | // } 435 | // } 436 | // }).start(); 437 | 438 | 439 | 440 | JButton sumbit = new JButton("提交申请"); 441 | sumbit.setFont(new Font("",Font.BOLD,22)); 442 | sumbit.setBounds(100,500,130,30); 443 | jp.add(sumbit); 444 | // 设置监听提交事件 445 | sumbit.addActionListener(new ActionListener() { 446 | @Override 447 | public void actionPerformed(ActionEvent e) { 448 | String flownumber = ca.getSelectedItem().toString(); 449 | String jiaoshi = jiao.getSelectedItem().toString(); 450 | System.out.println(flownumber+jiaoshi); 451 | try { 452 | String cid = new ServiceRequest().ServiceClassrooid(flownumber, jiaoshi); 453 | System.out.println(cid); 454 | String thingText = jTextArea.getText(); 455 | String date = jTextField.getText(); 456 | String start = statext.getText(); 457 | String text = endtext.getText(); 458 | String daterage="^\\d{4}[\\-\\/\\s]?((((0[13578])|(1[02]))[\\-\\/\\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\\-\\/\\s]?(([0-2][0-9])|(30)))|(02[\\-\\/\\s]?[0-2][0-9]))$"; 459 | String time="([0-1]?[0-9]|2[0-3]):([0-5][0-9])$"; 460 | boolean datepandaun = Pattern.matches(daterage, date); 461 | boolean startpandaun = Pattern.matches(time, start); 462 | boolean endpandaun = Pattern.matches(time, text); 463 | if (datepandaun && startpandaun && endpandaun){ 464 | Request request = new Request(); 465 | long l = System.currentTimeMillis(); 466 | String s = String.valueOf(l); 467 | 468 | 469 | System.out.println(s); 470 | request.setId(s); 471 | request.setStatus(1); 472 | request.setThing(thingText); 473 | 474 | request.setDatetime(date); 475 | request.setStartrequest(start); 476 | request.setEndrequest(text); 477 | request.setSid(id); 478 | request.setCid(cid); 479 | 480 | Integer chengong = new ServiceRequest().ServiceInsertRequest(request); 481 | if (chengong!=0){ 482 | JOptionPane.showMessageDialog(null,"上传成功","消息",JOptionPane.OK_OPTION); 483 | } 484 | else { 485 | JOptionPane.showMessageDialog(null,"上传失败,请重新上传","消息",JOptionPane.OK_OPTION); 486 | } 487 | System.out.println(chengong); 488 | } 489 | else { 490 | JOptionPane.showMessageDialog(null,"请输入正确的日期与时间格式","消息",JOptionPane.OK_OPTION); 491 | } 492 | 493 | } catch (IOException ioException) { 494 | ioException.printStackTrace(); 495 | } 496 | 497 | 498 | } 499 | }); 500 | 501 | // 502 | return jp; 503 | } 504 | // 增加设备界面 505 | private JPanel addEquipment() throws IOException { 506 | JPanel jp = new JPanel(); 507 | 508 | // 标题 509 | jp.setLayout(null); 510 | JLabel jLabel = new JLabel("教室信息管理系统---学生端"); 511 | jLabel.setBounds(160,30,400,40); 512 | jLabel.setFont(new Font("",Font.BOLD,30)); 513 | jp.add(jLabel); 514 | 515 | JLabel classroom = new JLabel("楼号"); 516 | classroom.setBounds(100,100,100,40); 517 | classroom.setFont(new Font("",Font.BOLD,20)); 518 | jp.add(classroom); 519 | 520 | // JTextField ca= new JTextField(); 521 | // ca.setFont(new Font("",Font.BOLD,20)); 522 | // ca.setBounds(230,100,200,40); 523 | // jp.add(ca); 524 | 525 | ArrayList strings = new ServiceUser().ServiceSelectCroom(); 526 | String[] strings1 = strings.toArray(new String[strings.size()]); 527 | JComboBox ca = new JComboBox<>(strings1); 528 | ca.setFont(new Font("",Font.BOLD,20)); 529 | ca.setBounds(230,100,200,40); 530 | ca.setSelectedIndex(-1); 531 | jp.add(ca); 532 | 533 | JLabel jiaoshi = new JLabel("教室编号"); 534 | jiaoshi.setBounds(100,170,100,40); 535 | jiaoshi.setFont(new Font("",Font.BOLD,20)); 536 | 537 | jp.add(jiaoshi); 538 | 539 | // JTextField jiao= new JTextField(); 540 | // jiao.setFont(new Font("",Font.BOLD,20)); 541 | // jiao.setBounds(230,170,200,40); 542 | // jp.add(jiao); 543 | 544 | JComboBox jiao = new JComboBox<>(); 545 | jiao.setFont(new Font("",Font.BOLD,20)); 546 | jiao.setBounds(230,170,200,40); 547 | jiao.setSelectedIndex(-1); 548 | jp.add(jiao); 549 | 550 | ca.addItemListener(new ItemListener() { 551 | @Override 552 | public void itemStateChanged(ItemEvent e) { 553 | String s = ca.getSelectedItem().toString(); 554 | System.out.println(s); 555 | try { 556 | ArrayList strings2 = new ServiceUser().ServiceSelectCoomroom(s); 557 | for (String s1:strings2){ 558 | jiao.addItem(s1); 559 | } 560 | // jiao.setSelectedIndex(-1); 561 | } catch (IOException ioException) { 562 | ioException.printStackTrace(); 563 | } 564 | 565 | } 566 | }); 567 | 568 | JLabel ename = new JLabel("设备名称"); 569 | ename.setBounds(100,240,100,40); 570 | ename.setFont(new Font("",Font.BOLD,20)); 571 | 572 | jp.add(ename); 573 | 574 | JComboBox shebei = new JComboBox<>(); 575 | shebei.setFont(new Font("",Font.BOLD,20)); 576 | shebei.setBounds(230,240,200,40); 577 | jp.add(shebei); 578 | 579 | jiao.addItemListener(new ItemListener() { 580 | @Override 581 | public void itemStateChanged(ItemEvent e) { 582 | shebei.removeAllItems(); 583 | String flow = ca.getSelectedItem().toString(); 584 | String jiao1 = jiao.getSelectedItem().toString(); 585 | ArrayList equipment = null; 586 | try { 587 | equipment = new ServiceRequest().ServiceEqument(flow, jiao1); 588 | ArrayList strings = new ArrayList<>(); 589 | for (Equipment equipment1:equipment){ 590 | strings.add(equipment1.getName()); 591 | } 592 | if (strings.size()>0){ 593 | for (String s:strings){ 594 | shebei.addItem(s); 595 | } 596 | } 597 | else { 598 | shebei.addItem(""); 599 | } 600 | 601 | 602 | } catch (IOException ioException) { 603 | ioException.printStackTrace(); 604 | } 605 | 606 | } 607 | }); 608 | // 添加描述 609 | JLabel description = new JLabel("损坏描述"); 610 | description.setBounds(100,310,100,40); 611 | description.setFont(new Font("",Font.BOLD,20)); 612 | jp.add(description); 613 | // 添加输入框 614 | JTextArea jTextArea = new JTextArea(); 615 | jTextArea.setFont(new Font("",Font.PLAIN,20) ); 616 | jTextArea.setBounds(230,300,300,70); 617 | jp.add(jTextArea); 618 | System.out.println(jTextArea); 619 | 620 | // JButton fond = new JButton("查找设备"); 621 | // fond.setFont(new Font("",Font.BOLD,22)); 622 | // fond.setBounds(460,170,130,40); 623 | // jp.add(fond); 624 | 625 | 626 | JButton sumbitequemnt =new JButton("提交"); 627 | sumbitequemnt.setFont(new Font("",Font.BOLD,22)); 628 | sumbitequemnt.setBounds(100,400,130,30); 629 | jp.add(sumbitequemnt); 630 | sumbitequemnt.addActionListener(new ActionListener() { 631 | @Override 632 | public void actionPerformed(ActionEvent e) { 633 | String enameText = shebei.getSelectedItem().toString();;//设备名称 634 | String decription = jTextArea.getText();//设备描述 635 | String flwo = ca.getSelectedItem().toString(); 636 | String jiaoshibianhao = jiao.getSelectedItem().toString(); 637 | Integer status=1; 638 | try { 639 | System.out.println(flwo); 640 | System.out.println(jiaoshibianhao); 641 | System.out.println(enameText); 642 | System.out.println(decription); 643 | Integer integer = new ServiceRequest().ServiceUpdateEqument(enameText, status, decription, flwo, jiaoshibianhao); 644 | System.out.println(integer); 645 | if (integer!=0){ 646 | JOptionPane.showMessageDialog(null,"提交成功","消息",JOptionPane.OK_OPTION); 647 | }else { 648 | JOptionPane.showMessageDialog(null,"提交失败","消息",JOptionPane.OK_OPTION); 649 | } 650 | } catch (IOException ioException) { 651 | ioException.printStackTrace(); 652 | } 653 | } 654 | }); 655 | 656 | // fond.addActionListener(new ActionListener() { 657 | // @Override 658 | // public void actionPerformed(ActionEvent e) { 659 | // //设备名称 660 | // JLabel ename = new JLabel("设备名称"); 661 | // ename.setBounds(100,240,100,40); 662 | // ename.setFont(new Font("",Font.BOLD,20)); 663 | // jp.add(ename); 664 | // String flow = ca.getSelectedItem().toString(); 665 | // String jiao1 = jiao.getSelectedItem().toString(); 666 | // JComboBox shebei; 667 | //// 查找设备名称 668 | // try { 669 | // ArrayList equipment = new ServiceRequest().ServiceEqument(flow, jiao1); 670 | // ArrayList strings = new ArrayList<>(); 671 | // for (Equipment equipment1:equipment){ 672 | // strings.add(equipment1.getName()); 673 | // } 674 | // String[] strings1 = strings.toArray(new String[strings.size()]); 675 | // 676 | // 677 | // shebei = new JComboBox<>(strings1); 678 | // shebei.setFont(new Font("",Font.BOLD,20)); 679 | // shebei.setBounds(230,240,200,40); 680 | // jp.add(shebei); 681 | //// 添加描述 682 | // JLabel description = new JLabel("损坏描述"); 683 | // description.setBounds(100,310,100,40); 684 | // description.setFont(new Font("",Font.BOLD,20)); 685 | // jp.add(description); 686 | //// 添加输入框 687 | // JTextArea jTextArea = new JTextArea(); 688 | // jTextArea.setFont(new Font("",Font.PLAIN,20) ); 689 | // jTextArea.setBounds(230,300,300,70); 690 | // jp.add(jTextArea); 691 | // System.out.println(jTextArea); 692 | // 693 | //// 显示提交按钮 694 | // 695 | //// sumbitequemnt =; 696 | // sumbitequemnt.setFont(new Font("",Font.BOLD,22)); 697 | // sumbitequemnt.setBounds(100,400,130,30); 698 | // jp.add(sumbitequemnt); 699 | //// 700 | //sumbitequemnt.addActionListener(new ActionListener() { 701 | // @Override 702 | // public void actionPerformed(ActionEvent e) { 703 | // String enameText = shebei.getSelectedItem().toString();;//设备名称 704 | // String decription = jTextArea.getText();//设备描述 705 | // String flwo = ca.getSelectedItem().toString(); 706 | // String jiaoshibianhao = jiao.getSelectedItem().toString(); 707 | // Integer status=1; 708 | // try { 709 | // System.out.println(flwo); 710 | // System.out.println(jiaoshibianhao); 711 | // System.out.println(enameText); 712 | // System.out.println(decription); 713 | // Integer integer = new ServiceRequest().ServiceUpdateEqument(enameText, status, decription, flwo, jiaoshibianhao); 714 | // System.out.println(integer); 715 | // } catch (IOException ioException) { 716 | // ioException.printStackTrace(); 717 | // } 718 | // } 719 | // }); 720 | // 721 | // } catch (Exception ioException) { 722 | // ioException.printStackTrace(); 723 | // } 724 | // 725 | //// 726 | // 727 | //// 728 | // 729 | //// 显示设备 730 | // setContentPane(jp); 731 | // setVisible(true); 732 | // } 733 | // }); 734 | 735 | 736 | 737 | 738 | // JComboBox etishi = new JComboBox<>(); 739 | // ArrayList equipment = new ServiceRequest().ServiceEqument(); 740 | 741 | 742 | 743 | // 744 | 745 | 746 | return jp; 747 | } 748 | 749 | //增加选择按钮 750 | private void addSelect(){ 751 | //日期提示语 752 | JLabel date = new JLabel("日期"); 753 | date.setBounds(40,100,50,40); 754 | date.setFont(new Font("",Font.BOLD,20)); 755 | jPanel.add(date); 756 | // 定义输入框 757 | JTextField jTextField = new JTextField(); 758 | jTextField.setBounds(90,110,120,30); 759 | jTextField.setFont(new Font(null,Font.BOLD,20)); 760 | jPanel.add(jTextField); 761 | //开始时间提示语 762 | JLabel starttime = new JLabel("开始时间"); 763 | starttime.setBounds(210,100,120,40); 764 | starttime.setFont(new Font("",Font.BOLD,20)); 765 | jPanel.add(starttime); 766 | // 输入开始时间 767 | JTextField start = new JTextField(); 768 | start.setBounds(300,110,120,30); 769 | start.setFont(new Font(null,Font.BOLD,20)); 770 | jPanel.add(start); 771 | //结束时间提示语 772 | JLabel end = new JLabel("结束时间"); 773 | end.setBounds(430,100,120,40); 774 | end.setFont(new Font("",Font.BOLD,20)); 775 | jPanel.add(end); 776 | // 777 | JTextField enddd = new JTextField(); 778 | enddd.setBounds(520,110,120,30); 779 | enddd.setFont(new Font(null,Font.BOLD,20)); 780 | jPanel.add(enddd); 781 | JButton quern = new JButton("确认"); 782 | quern.setBounds(530,160,100,25); 783 | quern.setFont(new Font(null,Font.BOLD,20)); 784 | jPanel.add(quern); 785 | 786 | JLabel tishiyu = new JLabel("年月日:xxxx-xx-xx;时间:xx:xx"); 787 | tishiyu.setFont(new Font(null,Font.PLAIN,25)); 788 | tishiyu.setBounds(180,300,500,30); 789 | jPanel.add(tishiyu); 790 | quern.addActionListener(new ActionListener() { 791 | @Override 792 | public void actionPerformed(ActionEvent e) { 793 | String date = jTextField.getText(); 794 | String starttime = start.getText(); 795 | String endtime = enddd.getText(); 796 | System.out.println(date+starttime+endtime); 797 | 798 | 799 | String daterage="^\\d{4}[\\-\\/\\s]?((((0[13578])|(1[02]))[\\-\\/\\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\\-\\/\\s]?(([0-2][0-9])|(30)))|(02[\\-\\/\\s]?[0-2][0-9]))$"; 800 | String time="([0-1]?[0-9]|2[0-3]):([0-5][0-9])$"; 801 | boolean matches = Pattern.matches(daterage, date); 802 | boolean matches1 = Pattern.matches(time, starttime); 803 | boolean matches2 = Pattern.matches(time, endtime); 804 | System.out.println(""+matches+matches1+matches2); 805 | try { 806 | if (matches && matches1 && matches2){ 807 | addtable(date,starttime,endtime); 808 | } 809 | else { 810 | JOptionPane.showMessageDialog(null,"请确认您的日期/时间格式正确","消息",JOptionPane.OK_OPTION); 811 | } 812 | } catch (IOException ioException) { 813 | ioException.printStackTrace(); 814 | } 815 | } 816 | }); 817 | // quern.set 818 | // 显示 819 | // setContentPane(jPanel); 820 | 821 | 822 | 823 | } 824 | 825 | // 增加表格 826 | private void addtable(String date,String starttime,String endtime) throws IOException { 827 | remove(jPanel); 828 | JScrollPane jScrollPane=new JScrollPane(); 829 | HashSet timeclassroom = getTimeclassroom(date, starttime, endtime); 830 | String columnNames[]={"楼号","教室编号","最大容纳人数"}; 831 | DefaultTableModel dm = // 重写表格 832 | new DefaultTableModel(columnNames,0); // 列名 833 | JTable jTable = new JTable(dm); 834 | jTable.setFont(new Font(null,Font.PLAIN,18)); 835 | jTable.setRowHeight(25); 836 | JTableHeader tab_header =jTable.getTableHeader(); //获取表头 837 | tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 20)); 838 | tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); 839 | for(Croom c:timeclassroom){ 840 | Vector v= new Vector<>(); 841 | v.add(c.getFoolnumber()); 842 | v.add(c.getRoomnumber()); 843 | v.add(c.getMaxperson()); 844 | 845 | dm.addRow(v); 846 | } 847 | jScrollPane.setViewportView(jTable); 848 | 849 | // add(jScrollPane); 850 | setContentPane(jScrollPane); 851 | // jPanel.add(jScrollPane); 852 | setVisible(true); 853 | // setContentPane(jPanel); 854 | } 855 | //得到数据 856 | private HashSet getTimeclassroom(String date,String starttime,String endtime) throws IOException { 857 | HashSet crooms = new ServiceUser().ServiceSelectspareclassroom(date, starttime, endtime); 858 | return crooms; 859 | } 860 | public static void main(String[] args) throws IOException { 861 | // Studentlogin studentlogin = new Studentlogin("1"); 862 | 863 | } 864 | } 865 | -------------------------------------------------------------------------------- /代码文件/ClassRomeManger/src/main/java/com/lmx/View/Person/Teacherlogin.java: -------------------------------------------------------------------------------- 1 | package com.lmx.View.Person; 2 | 3 | import com.lmx.Pojo.Croom; 4 | import com.lmx.Pojo.Equipment; 5 | import com.lmx.Pojo.Request; 6 | import com.lmx.Pojo.RequestLog; 7 | import com.lmx.Service.ServiceRequest; 8 | import com.lmx.Service.ServiceUser; 9 | import com.lmx.Until.MyRecoverbutton; 10 | import com.lmx.Until.MyShengpibutton; 11 | 12 | import javax.swing.*; 13 | import javax.swing.event.MenuEvent; 14 | import javax.swing.event.MenuListener; 15 | import javax.swing.table.DefaultTableModel; 16 | import javax.swing.table.JTableHeader; 17 | import java.awt.*; 18 | import java.awt.event.ActionEvent; 19 | import java.awt.event.ActionListener; 20 | import java.awt.event.ItemEvent; 21 | import java.awt.event.ItemListener; 22 | import java.io.IOException; 23 | import java.util.ArrayList; 24 | import java.util.HashSet; 25 | import java.util.Vector; 26 | import java.util.regex.Pattern; 27 | 28 | //老师权限之后 29 | public class Teacherlogin extends JFrame{ 30 | // private String name; 31 | private String id; 32 | private JPanel jPanel=new JPanel(); 33 | 34 | 35 | public String getId() { 36 | return id; 37 | } 38 | 39 | public void setId(String id) { 40 | this.id = id; 41 | } 42 | 43 | public Teacherlogin(String id) throws HeadlessException { 44 | // 初始化窗体程序 45 | this.id=id; 46 | this.init(); 47 | 48 | } 49 | 50 | // 初始化 51 | protected void init() { 52 | this.setTitle("教室信息管理系统"); 53 | this.setSize(700,700); 54 | 55 | this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 56 | setLocationRelativeTo(null); 57 | this.setResizable(false); 58 | this.setjpanel(); 59 | this.setVisible(true); 60 | 61 | 62 | } 63 | // 创建panel 64 | private void setjpanel(){ 65 | // 创建页面 66 | // JPanel jPanel = new JPanel(); 67 | jPanel.setLayout(null); 68 | JLabel jLabel = new JLabel("教室信息管理系统---教师端"); 69 | jLabel.setBounds(160,30,400,40); 70 | jLabel.setFont(new Font("",Font.BOLD,30)); 71 | jPanel.add(jLabel); 72 | 73 | // 设置菜单组 74 | JMenuBar menuBar = new JMenuBar(); // 创建一个菜单栏 75 | JMenu fileMenu = new JMenu("查询"); // 创建一个菜单 76 | fileMenu.setFont(new Font(null,Font.BOLD,20)); 77 | JMenu editMenu = new JMenu("审批"); // 创建一个菜单 78 | 79 | editMenu.setFont(new Font(null,Font.BOLD,20)); 80 | JMenu equment = new JMenu("设备报修"); // 创建一个菜单 81 | 82 | equment.setFont(new Font(null,Font.BOLD,20)); 83 | JMenu helpMenu = new JMenu("我的申请"); // 创建一个菜单 84 | JMenu huifu = new JMenu("恢复");//恢复按钮 85 | huifu.setFont(new Font(null,Font.BOLD,20)); 86 | helpMenu.setFont(new Font(null,Font.BOLD,20)); 87 | menuBar.add(fileMenu); 88 | menuBar.add(editMenu); 89 | menuBar.add(equment); 90 | menuBar.add(helpMenu); 91 | menuBar.add(huifu); 92 | // menuBar.add(quit); 93 | this.setJMenuBar(menuBar); 94 | huifu.addMenuListener(new MenuListener() { 95 | @Override 96 | public void menuSelected(MenuEvent e) { 97 | try { 98 | JScrollPane jScrollPane=new JScrollPane(); 99 | ServiceUser serviceUser = new ServiceUser(); 100 | ArrayList requestLogs = serviceUser.SelectrequestlogTeacher(id); 101 | System.out.println(requestLogs); 102 | String columnNames[]={"申请事项","日期","开始时间","结束时间","楼号","教室编号","恢复"}; 103 | DefaultTableModel dm = // 重写表格 104 | new DefaultTableModel(columnNames,0); // 列名 105 | JTable jTable = new JTable(dm); 106 | jTable.setFont(new Font(null,Font.PLAIN,18)); 107 | jTable.setRowHeight(25); 108 | JTableHeader tab_header =jTable.getTableHeader(); //获取表头 109 | tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 20)); 110 | tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); 111 | for (RequestLog r:requestLogs){ 112 | Vector objects = new Vector<>(); 113 | objects.add(r.getThing()); 114 | objects.add(r.getDatetime()); 115 | objects.add(r.getStartrequest()); 116 | objects.add(r.getEndrequest()); 117 | objects.add(r.getFoolnumber()); 118 | objects.add(r.getRoomnumber()); 119 | 120 | dm.addRow(objects); 121 | 122 | } 123 | MyRecoverbutton.arrayList=requestLogs; 124 | System.out.println("该学生的id是"+id); 125 | jTable.getColumnModel().getColumn(6).setCellEditor(new MyRecoverbutton("恢复",2,requestLogs,dm,id)); 126 | jTable.getColumnModel().getColumn(6).setCellRenderer(new MyRecoverbutton("恢复",2,requestLogs,dm,id) ); 127 | jScrollPane.setViewportView(jTable); 128 | 129 | setContentPane(jScrollPane); 130 | setVisible(true); 131 | 132 | 133 | } catch (IOException ioException) { 134 | ioException.printStackTrace(); 135 | } 136 | } 137 | 138 | @Override 139 | public void menuDeselected(MenuEvent e) { 140 | 141 | } 142 | 143 | @Override 144 | public void menuCanceled(MenuEvent e) { 145 | 146 | } 147 | }); 148 | //添加查询事件 149 | 150 | // quit.addMenuListener(new MenuListener() { 151 | // 152 | // @Override 153 | // public void menuSelected(MenuEvent e) { 154 | // 155 | // } 156 | // 157 | // @Override 158 | // public void menuDeselected(MenuEvent e) { 159 | // System.exit(0); 160 | // } 161 | // 162 | // @Override 163 | // public void menuCanceled(MenuEvent e) { 164 | // 165 | // } 166 | // }); 167 | fileMenu.addMenuListener(new MenuListener() { 168 | @Override 169 | public void menuSelected(MenuEvent e) { 170 | // getTimeclassroom()a 171 | addSelect(); 172 | 173 | 174 | // 175 | // JLabel starttime = new JLabel("开始时间"); 176 | // starttime.setBounds(190,100,400,40); 177 | // starttime.setFont(new Font("",Font.BOLD,20)); 178 | // jPanel.add(date); 179 | // 180 | // JLabel end = new JLabel("结束时间"); 181 | // end.setBounds(220,100,400,40); 182 | // end.setFont(new Font("",Font.BOLD,20)); 183 | // jPanel.add(end); 184 | setContentPane(jPanel); 185 | } 186 | 187 | @Override 188 | public void menuDeselected(MenuEvent e) { 189 | 190 | } 191 | 192 | @Override 193 | public void menuCanceled(MenuEvent e) { 194 | 195 | } 196 | }); 197 | // 添加审批界面 198 | editMenu.addMenuListener(new MenuListener() { 199 | @Override 200 | public void menuSelected(MenuEvent e) { 201 | JPanel jp = null; 202 | try { 203 | jp = addRequestSwing(); 204 | } catch (IOException ioException) { 205 | ioException.printStackTrace(); 206 | } 207 | setContentPane(jp); 208 | setVisible(true); 209 | 210 | } 211 | 212 | @Override 213 | public void menuDeselected(MenuEvent e) { 214 | 215 | } 216 | 217 | @Override 218 | public void menuCanceled(MenuEvent e) { 219 | 220 | } 221 | }); 222 | // 添加我的申请界面 223 | helpMenu.addMenuListener(new MenuListener() { 224 | @Override 225 | public void menuSelected(MenuEvent e) { 226 | JScrollPane jScrollPane=new JScrollPane(); 227 | ArrayList requests = null; 228 | try { 229 | requests = new ServiceRequest().ServiceTeacherSelectArrylist(id); 230 | } catch (IOException ioException) { 231 | ioException.printStackTrace(); 232 | } 233 | System.out.println(requests.toString()); 234 | // 235 | String columnNames[]={"申请事项","日期","开始时间","结束时间","楼号","教室编号","审批状态","操作"}; 236 | DefaultTableModel dm = // 重写表格 237 | new DefaultTableModel(columnNames,0); // 列名 238 | JTable jTable = new JTable(dm); 239 | jTable.setFont(new Font(null,Font.PLAIN,18)); 240 | jTable.setRowHeight(25); 241 | JTableHeader tab_header =jTable.getTableHeader(); //获取表头 242 | tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 20)); 243 | tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); 244 | for (Request r:requests){ 245 | Vector objects = new Vector<>(); 246 | objects.add(r.getThing()); 247 | objects.add(r.getDatetime()); 248 | objects.add(r.getStartrequest()); 249 | objects.add(r.getEndrequest()); 250 | objects.add(r.getFoolnumber()); 251 | objects.add(r.getRoomnumber()); 252 | 253 | if (r.getStatus()==1){ 254 | objects.add("正在审批"); 255 | 256 | } 257 | else if(r.getStatus()==2){ 258 | objects.add("通过"); 259 | } 260 | else { 261 | objects.add("驳回"); 262 | } 263 | dm.addRow(objects); 264 | 265 | } 266 | MyShengpibutton.arrayList=requests; 267 | System.out.println("该老师的id是"+id); 268 | jTable.getColumnModel().getColumn(7).setCellEditor(new MyShengpibutton("删除",2,requests,dm,id)); 269 | jTable.getColumnModel().getColumn(7).setCellRenderer(new MyShengpibutton("删除",2,requests,dm,id) ); 270 | // 显示 271 | jScrollPane.setViewportView(jTable); 272 | 273 | setContentPane(jScrollPane); 274 | setVisible(true); 275 | } 276 | 277 | @Override 278 | public void menuDeselected(MenuEvent e) { 279 | 280 | } 281 | 282 | @Override 283 | public void menuCanceled(MenuEvent e) { 284 | 285 | } 286 | }); 287 | // 设备申报界面 288 | equment.addMenuListener(new MenuListener() { 289 | @Override 290 | public void menuSelected(MenuEvent e) { 291 | JPanel jPanel = null; 292 | try { 293 | jPanel = addEquipment(); 294 | } catch (IOException ioException) { 295 | ioException.printStackTrace(); 296 | } 297 | setContentPane(jPanel); 298 | setVisible(true); 299 | 300 | } 301 | 302 | @Override 303 | public void menuDeselected(MenuEvent e) { 304 | 305 | } 306 | 307 | @Override 308 | public void menuCanceled(MenuEvent e) { 309 | 310 | } 311 | }); 312 | 313 | 314 | // 添加面板到框架 315 | this.setContentPane(jPanel); 316 | } 317 | // 增加审批的功能按钮 318 | private JPanel addRequestSwing() throws IOException { 319 | JPanel jp = new JPanel(); 320 | jp.setLayout(null); 321 | JLabel jLabel = new JLabel("教室信息管理系统---教师端"); 322 | jLabel.setBounds(160,30,400,40); 323 | jLabel.setFont(new Font("",Font.BOLD,30)); 324 | jp.add(jLabel); 325 | // 选择课程还是活动 326 | 327 | JLabel selects = new JLabel("申请类型"); 328 | selects.setBounds(100,100,100,40); 329 | selects.setFont(new Font("",Font.BOLD,20)); 330 | jp.add(selects); 331 | 332 | String[] s=new String[]{"课程","其他"}; 333 | JComboBox select = new JComboBox<>(s); 334 | select.setBounds(230,100,200,40); 335 | select.setFont(new Font(null,Font.PLAIN,20)); 336 | jp.add(select); 337 | //申请事项 338 | 339 | JLabel thing = new JLabel("申请事项"); 340 | thing.setBounds(100,170,100,40); 341 | thing.setFont(new Font("",Font.BOLD,20)); 342 | jp.add(thing); 343 | // 输入框 344 | JTextArea jTextArea = new JTextArea(); 345 | jTextArea.setFont(new Font(null,Font.PLAIN,20)); 346 | jTextArea.setBounds(230,160,400,60); 347 | jp.add(jTextArea); 348 | // 349 | JLabel use = new JLabel("使用日期"); 350 | use.setBounds(100,240,100,40); 351 | use.setFont(new Font("",Font.BOLD,20)); 352 | jp.add(use); 353 | 354 | JTextField jTextField = new JTextField(); 355 | jTextField.setFont(new Font("",Font.BOLD,20)); 356 | jTextField.setBounds(230,240,200,40); 357 | jp.add(jTextField); 358 | 359 | JLabel sta = new JLabel("开始时间"); 360 | sta.setBounds(100,310,100,40); 361 | sta.setFont(new Font("",Font.BOLD,20)); 362 | jp.add(sta); 363 | 364 | JTextField statext = new JTextField(); 365 | statext.setFont(new Font("",Font.BOLD,20)); 366 | statext.setBounds(230,310,200,40); 367 | jp.add(statext); 368 | 369 | JLabel end = new JLabel("结束时间"); 370 | end.setBounds(100,380,100,40); 371 | end.setFont(new Font("",Font.BOLD,20)); 372 | jp.add(end); 373 | 374 | JTextField endtext = new JTextField(); 375 | endtext.setFont(new Font("",Font.BOLD,20)); 376 | endtext.setBounds(230,380,200,40); 377 | jp.add(endtext); 378 | 379 | JLabel classroom = new JLabel("楼号"); 380 | classroom.setBounds(100,450,100,40); 381 | classroom.setFont(new Font("",Font.BOLD,20)); 382 | jp.add(classroom); 383 | 384 | ArrayList strings = new ServiceUser().ServiceSelectCroom(); 385 | String[] strings1 = strings.toArray(new String[strings.size()]); 386 | JComboBox ca = new JComboBox<>(strings1); 387 | ca.setFont(new Font("",Font.BOLD,20)); 388 | ca.setBounds(230,450,200,40); 389 | ca.setSelectedIndex(-1); 390 | jp.add(ca); 391 | 392 | JLabel jiaoshi = new JLabel("教室编号"); 393 | jiaoshi.setBounds(100,520,100,40); 394 | jiaoshi.setFont(new Font("",Font.BOLD,20)); 395 | jp.add(jiaoshi); 396 | 397 | JComboBox jiao = new JComboBox<>(); 398 | jiao.setFont(new Font("",Font.BOLD,20)); 399 | jiao.setBounds(230,520,200,40); 400 | jp.add(jiao); 401 | 402 | ca.addItemListener(new ItemListener() { 403 | @Override 404 | public void itemStateChanged(ItemEvent e) { 405 | String s = ca.getSelectedItem().toString(); 406 | System.out.println(s); 407 | try { 408 | ArrayList strings2 = new ServiceUser().ServiceSelectCoomroom(s); 409 | for (String s1:strings2){ 410 | jiao.addItem(s1); 411 | } 412 | } catch (IOException ioException) { 413 | ioException.printStackTrace(); 414 | } 415 | 416 | } 417 | }); 418 | 419 | JButton sumbit = new JButton("提交申请"); 420 | sumbit.setFont(new Font("",Font.BOLD,22)); 421 | sumbit.setBounds(460,525,130,30); 422 | jp.add(sumbit); 423 | // 设置监听提交事件 424 | sumbit.addActionListener(new ActionListener() { 425 | @Override 426 | public void actionPerformed(ActionEvent e) { 427 | String s1 = select.getSelectedItem().toString();//获取到类型,课程直接通过,其他需要审批 428 | String flownumber = ca.getSelectedItem().toString(); 429 | String jiaoshi = jiao.getSelectedItem().toString(); 430 | System.out.println(flownumber+jiaoshi); 431 | try { 432 | String cid = new ServiceRequest().ServiceClassrooid(flownumber, jiaoshi); 433 | System.out.println(cid); 434 | String thingText = jTextArea.getText(); 435 | String date = jTextField.getText(); 436 | String start = statext.getText(); 437 | String text = endtext.getText(); 438 | 439 | String daterage="^\\d{4}[\\-\\/\\s]?((((0[13578])|(1[02]))[\\-\\/\\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\\-\\/\\s]?(([0-2][0-9])|(30)))|(02[\\-\\/\\s]?[0-2][0-9]))$"; 440 | String time="([0-1]?[0-9]|2[0-3]):([0-5][0-9])$"; 441 | boolean datepandaun = Pattern.matches(daterage, date); 442 | boolean startpandaun = Pattern.matches(time, start); 443 | boolean endpandaun = Pattern.matches(time, text); 444 | if (datepandaun && startpandaun && endpandaun){ 445 | if (s1.equals("其他")){ 446 | Request request = new Request(); 447 | long l = System.currentTimeMillis(); 448 | String s2 = String.valueOf(l); 449 | request.setId(s2); 450 | request.setStatus(1); 451 | request.setThing(thingText); 452 | 453 | request.setDatetime(date); 454 | request.setStartrequest(start); 455 | request.setEndrequest(text); 456 | request.setTsid(id); 457 | request.setCid(cid); 458 | 459 | Integer chengong = new ServiceRequest().ServiceInsertRequest(request); 460 | if (chengong!=0){ 461 | JOptionPane.showMessageDialog(null,"上传成功","消息",JOptionPane.OK_OPTION); 462 | } 463 | else { 464 | JOptionPane.showMessageDialog(null,"上传失败,请重新上传","消息",JOptionPane.OK_OPTION); 465 | } 466 | System.out.println(chengong); 467 | } 468 | // 当审批事项是课程是直接插入 469 | else { 470 | ArrayList crooms = new ServiceUser().ServiceSelectRequestCourse(date, start, text, flownumber, jiaoshi); 471 | System.out.println("crooms"+crooms); 472 | if (crooms.size()==0){ 473 | long l = System.currentTimeMillis(); 474 | String s2 = String.valueOf(l); 475 | Integer integer = new ServiceUser().ServiceInsertCourse(s2,thingText, start, text, date, cid, id); 476 | System.out.println("课程插入的行数"+integer); 477 | System.out.println(integer); 478 | JOptionPane.showMessageDialog(null,"上传成功","消息",JOptionPane.OK_OPTION); 479 | } 480 | 481 | 482 | else { 483 | JOptionPane.showMessageDialog(null,"上传失败,请重新上传","消息",JOptionPane.OK_OPTION); 484 | } 485 | 486 | } 487 | } 488 | // 如果是活动申请需要审批 489 | else { 490 | JOptionPane.showMessageDialog(null,"请输正确的日期与时间格式","消息",JOptionPane.OK_OPTION); 491 | } 492 | } catch (IOException exception) { 493 | exception.printStackTrace(); 494 | } 495 | 496 | // Request request = new Request(); 497 | // request.setStatus(1); 498 | // request.setThing(thingText); 499 | // 500 | // request.setDatetime(date); 501 | // request.setStartrequest(start); 502 | // request.setEndrequest(text); 503 | // request.setSid(id); 504 | // request.setCid(cid); 505 | // 506 | // Integer chengong = new ServiceRequest().ServiceInsertRequest(request); 507 | // System.out.println(chengong); 508 | // } catch (IOException ioException) { 509 | // ioException.printStackTrace(); 510 | // } 511 | 512 | 513 | } 514 | }); 515 | 516 | // 517 | return jp; 518 | } 519 | // 增加设备界面 520 | private JPanel addEquipment() throws IOException { 521 | JPanel jp = new JPanel(); 522 | 523 | // 标题 524 | jp.setLayout(null); 525 | JLabel jLabel = new JLabel("教室信息管理系统---学生端"); 526 | jLabel.setBounds(160,30,400,40); 527 | jLabel.setFont(new Font("",Font.BOLD,30)); 528 | jp.add(jLabel); 529 | 530 | JLabel classroom = new JLabel("楼号"); 531 | classroom.setBounds(100,100,100,40); 532 | classroom.setFont(new Font("",Font.BOLD,20)); 533 | jp.add(classroom); 534 | 535 | // JTextField ca= new JTextField(); 536 | // ca.setFont(new Font("",Font.BOLD,20)); 537 | // ca.setBounds(230,100,200,40); 538 | // jp.add(ca); 539 | 540 | ArrayList strings = new ServiceUser().ServiceSelectCroom(); 541 | String[] strings1 = strings.toArray(new String[strings.size()]); 542 | JComboBox ca = new JComboBox<>(strings1); 543 | ca.setFont(new Font("",Font.BOLD,20)); 544 | ca.setBounds(230,100,200,40); 545 | ca.setSelectedIndex(-1); 546 | jp.add(ca); 547 | 548 | JLabel jiaoshi = new JLabel("教室编号"); 549 | jiaoshi.setBounds(100,170,100,40); 550 | jiaoshi.setFont(new Font("",Font.BOLD,20)); 551 | jp.add(jiaoshi); 552 | 553 | // JTextField jiao= new JTextField(); 554 | // jiao.setFont(new Font("",Font.BOLD,20)); 555 | // jiao.setBounds(230,170,200,40); 556 | // jp.add(jiao); 557 | 558 | JComboBox jiao = new JComboBox<>(); 559 | jiao.setFont(new Font("",Font.BOLD,20)); 560 | jiao.setBounds(230,170,200,40); 561 | jiao.setSelectedIndex(-1); 562 | jp.add(jiao); 563 | 564 | ca.addItemListener(new ItemListener() { 565 | @Override 566 | public void itemStateChanged(ItemEvent e) { 567 | String s = ca.getSelectedItem().toString(); 568 | System.out.println(s); 569 | try { 570 | ArrayList strings2 = new ServiceUser().ServiceSelectCoomroom(s); 571 | for (String s1:strings2){ 572 | jiao.addItem(s1); 573 | } 574 | } catch (IOException ioException) { 575 | ioException.printStackTrace(); 576 | } 577 | 578 | } 579 | }); 580 | 581 | JLabel ename = new JLabel("设备名称"); 582 | ename.setBounds(100,240,100,40); 583 | ename.setFont(new Font("",Font.BOLD,20)); 584 | 585 | jp.add(ename); 586 | 587 | JComboBox shebei = new JComboBox<>(); 588 | shebei.setFont(new Font("",Font.BOLD,20)); 589 | shebei.setBounds(230,240,200,40); 590 | jp.add(shebei); 591 | 592 | jiao.addItemListener(new ItemListener() { 593 | @Override 594 | public void itemStateChanged(ItemEvent e) { 595 | shebei.removeAllItems(); 596 | String flow = ca.getSelectedItem().toString(); 597 | String jiao1 = jiao.getSelectedItem().toString(); 598 | ArrayList equipment = null; 599 | try { 600 | equipment = new ServiceRequest().ServiceEqument(flow, jiao1); 601 | ArrayList strings = new ArrayList<>(); 602 | for (Equipment equipment1:equipment){ 603 | strings.add(equipment1.getName()); 604 | } 605 | for (String s:strings){ 606 | shebei.addItem(s); 607 | } 608 | } catch (IOException ioException) { 609 | ioException.printStackTrace(); 610 | } 611 | 612 | } 613 | }); 614 | // 添加描述 615 | JLabel description = new JLabel("损坏描述"); 616 | description.setBounds(100,310,100,40); 617 | description.setFont(new Font("",Font.BOLD,20)); 618 | jp.add(description); 619 | // 添加输入框 620 | JTextArea jTextArea = new JTextArea(); 621 | jTextArea.setFont(new Font("",Font.PLAIN,20) ); 622 | jTextArea.setBounds(230,300,300,70); 623 | jp.add(jTextArea); 624 | System.out.println(jTextArea); 625 | 626 | // JButton fond = new JButton("查找设备"); 627 | // fond.setFont(new Font("",Font.BOLD,22)); 628 | // fond.setBounds(460,170,130,40); 629 | // jp.add(fond); 630 | 631 | 632 | JButton sumbitequemnt =new JButton("提交"); 633 | sumbitequemnt.setFont(new Font("",Font.BOLD,22)); 634 | sumbitequemnt.setBounds(100,400,130,30); 635 | jp.add(sumbitequemnt); 636 | sumbitequemnt.addActionListener(new ActionListener() { 637 | @Override 638 | public void actionPerformed(ActionEvent e) { 639 | String enameText = shebei.getSelectedItem().toString();;//设备名称 640 | String decription = jTextArea.getText();//设备描述 641 | String flwo = ca.getSelectedItem().toString(); 642 | String jiaoshibianhao = jiao.getSelectedItem().toString(); 643 | Integer status=1; 644 | try { 645 | System.out.println(flwo); 646 | System.out.println(jiaoshibianhao); 647 | System.out.println(enameText); 648 | System.out.println(decription); 649 | Integer integer = new ServiceRequest().ServiceUpdateEqument(enameText, status, decription, flwo, jiaoshibianhao); 650 | System.out.println(integer); 651 | if (integer!=0){ 652 | JOptionPane.showMessageDialog(null,"提交成功","消息",JOptionPane.OK_OPTION); 653 | }else { 654 | JOptionPane.showMessageDialog(null,"提交失败","消息",JOptionPane.OK_OPTION); 655 | } 656 | } catch (IOException ioException) { 657 | ioException.printStackTrace(); 658 | } 659 | } 660 | }); 661 | 662 | // fond.addActionListener(new ActionListener() { 663 | // @Override 664 | // public void actionPerformed(ActionEvent e) { 665 | // //设备名称 666 | // JLabel ename = new JLabel("设备名称"); 667 | // ename.setBounds(100,240,100,40); 668 | // ename.setFont(new Font("",Font.BOLD,20)); 669 | // jp.add(ename); 670 | // String flow = ca.getSelectedItem().toString(); 671 | // String jiao1 = jiao.getSelectedItem().toString(); 672 | // JComboBox shebei; 673 | //// 查找设备名称 674 | // try { 675 | // ArrayList equipment = new ServiceRequest().ServiceEqument(flow, jiao1); 676 | // ArrayList strings = new ArrayList<>(); 677 | // for (Equipment equipment1:equipment){ 678 | // strings.add(equipment1.getName()); 679 | // } 680 | // String[] strings1 = strings.toArray(new String[strings.size()]); 681 | // 682 | // 683 | // shebei = new JComboBox<>(strings1); 684 | // shebei.setFont(new Font("",Font.BOLD,20)); 685 | // shebei.setBounds(230,240,200,40); 686 | // jp.add(shebei); 687 | //// 添加描述 688 | // JLabel description = new JLabel("损坏描述"); 689 | // description.setBounds(100,310,100,40); 690 | // description.setFont(new Font("",Font.BOLD,20)); 691 | // jp.add(description); 692 | //// 添加输入框 693 | // JTextArea jTextArea = new JTextArea(); 694 | // jTextArea.setFont(new Font("",Font.PLAIN,20) ); 695 | // jTextArea.setBounds(230,300,300,70); 696 | // jp.add(jTextArea); 697 | // System.out.println(jTextArea); 698 | // 699 | //// 显示提交按钮 700 | // 701 | //// sumbitequemnt =; 702 | // sumbitequemnt.setFont(new Font("",Font.BOLD,22)); 703 | // sumbitequemnt.setBounds(100,400,130,30); 704 | // jp.add(sumbitequemnt); 705 | //// 706 | //sumbitequemnt.addActionListener(new ActionListener() { 707 | // @Override 708 | // public void actionPerformed(ActionEvent e) { 709 | // String enameText = shebei.getSelectedItem().toString();;//设备名称 710 | // String decription = jTextArea.getText();//设备描述 711 | // String flwo = ca.getSelectedItem().toString(); 712 | // String jiaoshibianhao = jiao.getSelectedItem().toString(); 713 | // Integer status=1; 714 | // try { 715 | // System.out.println(flwo); 716 | // System.out.println(jiaoshibianhao); 717 | // System.out.println(enameText); 718 | // System.out.println(decription); 719 | // Integer integer = new ServiceRequest().ServiceUpdateEqument(enameText, status, decription, flwo, jiaoshibianhao); 720 | // System.out.println(integer); 721 | // } catch (IOException ioException) { 722 | // ioException.printStackTrace(); 723 | // } 724 | // } 725 | // }); 726 | // 727 | // } catch (Exception ioException) { 728 | // ioException.printStackTrace(); 729 | // } 730 | // 731 | //// 732 | // 733 | //// 734 | // 735 | //// 显示设备 736 | // setContentPane(jp); 737 | // setVisible(true); 738 | // } 739 | // }); 740 | 741 | 742 | 743 | 744 | // JComboBox etishi = new JComboBox<>(); 745 | // ArrayList equipment = new ServiceRequest().ServiceEqument(); 746 | 747 | 748 | 749 | // 750 | 751 | 752 | return jp; 753 | } 754 | 755 | //增加选择按钮 756 | private void addSelect(){ 757 | //日期提示语 758 | JLabel date = new JLabel("日期"); 759 | date.setBounds(40,100,50,40); 760 | date.setFont(new Font("",Font.BOLD,20)); 761 | jPanel.add(date); 762 | // 定义输入框 763 | JTextField jTextField = new JTextField(); 764 | jTextField.setBounds(90,110,120,30); 765 | jTextField.setFont(new Font(null,Font.BOLD,20)); 766 | jPanel.add(jTextField); 767 | //开始时间提示语 768 | JLabel starttime = new JLabel("开始时间"); 769 | starttime.setBounds(210,100,120,40); 770 | starttime.setFont(new Font("",Font.BOLD,20)); 771 | jPanel.add(starttime); 772 | // 输入开始时间 773 | JTextField start = new JTextField(); 774 | start.setBounds(300,110,120,30); 775 | start.setFont(new Font(null,Font.BOLD,20)); 776 | jPanel.add(start); 777 | //结束时间提示语 778 | JLabel end = new JLabel("结束时间"); 779 | end.setBounds(430,100,120,40); 780 | end.setFont(new Font("",Font.BOLD,20)); 781 | jPanel.add(end); 782 | // 783 | JTextField enddd = new JTextField(); 784 | enddd.setBounds(520,110,120,30); 785 | enddd.setFont(new Font(null,Font.BOLD,20)); 786 | jPanel.add(enddd); 787 | JButton quern = new JButton("确认"); 788 | quern.setBounds(530,160,100,25); 789 | quern.setFont(new Font(null,Font.BOLD,20)); 790 | jPanel.add(quern); 791 | 792 | JLabel tishiyu = new JLabel("年月日:xxxx-xx-xx;时间:xx:xx"); 793 | tishiyu.setFont(new Font(null,Font.PLAIN,25)); 794 | tishiyu.setBounds(180,300,500,30); 795 | jPanel.add(tishiyu); 796 | quern.addActionListener(new ActionListener() { 797 | @Override 798 | public void actionPerformed(ActionEvent e) { 799 | String date = jTextField.getText(); 800 | String starttime = start.getText(); 801 | String endtime = enddd.getText(); 802 | System.out.println(date+starttime+endtime); 803 | String daterage="^\\d{4}[\\-\\/\\s]?((((0[13578])|(1[02]))[\\-\\/\\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\\-\\/\\s]?(([0-2][0-9])|(30)))|(02[\\-\\/\\s]?[0-2][0-9]))$"; 804 | String time="([0-1]?[0-9]|2[0-3]):([0-5][0-9])$"; 805 | boolean matches = Pattern.matches(daterage, date); 806 | boolean matches1 = Pattern.matches(time, starttime); 807 | boolean matches2 = Pattern.matches(time, endtime); 808 | try { 809 | 810 | if (matches && matches1 && matches2){ 811 | addtable(date,starttime,endtime); 812 | } 813 | else { 814 | 815 | JOptionPane.showMessageDialog(null,"请确认您的日期/时间格式正确","消息",JOptionPane.OK_OPTION); 816 | } 817 | } catch (IOException ioException) { 818 | ioException.printStackTrace(); 819 | } 820 | } 821 | }); 822 | // quern.set 823 | // 显示 824 | // setContentPane(jPanel); 825 | 826 | 827 | 828 | } 829 | 830 | // 增加表格 831 | private void addtable(String date,String starttime,String endtime) throws IOException { 832 | remove(jPanel); 833 | JScrollPane jScrollPane=new JScrollPane(); 834 | HashSet timeclassroom = getTimeclassroom(date, starttime, endtime); 835 | String columnNames[]={"楼号","教室编号","最大容纳人数"}; 836 | DefaultTableModel dm = // 重写表格 837 | new DefaultTableModel(columnNames,0); // 列名 838 | JTable jTable = new JTable(dm); 839 | jTable.setFont(new Font(null,Font.PLAIN,18)); 840 | jTable.setRowHeight(25); 841 | JTableHeader tab_header =jTable.getTableHeader(); //获取表头 842 | tab_header.setFont(new Font("微软雅黑", Font.PLAIN, 20)); 843 | tab_header.setPreferredSize(new Dimension(tab_header.getWidth(), 30)); 844 | for(Croom c:timeclassroom){ 845 | Vector v= new Vector<>(); 846 | v.add(c.getFoolnumber()); 847 | v.add(c.getRoomnumber()); 848 | v.add(c.getMaxperson()); 849 | 850 | dm.addRow(v); 851 | } 852 | jScrollPane.setViewportView(jTable); 853 | 854 | setContentPane(jScrollPane); 855 | setVisible(true); 856 | // setContentPane(jPanel); 857 | } 858 | //得到数据 859 | private HashSet getTimeclassroom(String date,String starttime,String endtime) throws IOException { 860 | HashSet crooms = new ServiceUser().ServiceSelectspareclassroom(date, starttime, endtime); 861 | 862 | return crooms; 863 | } 864 | public static void main(String[] args) throws IOException { 865 | 866 | 867 | } 868 | } 869 | --------------------------------------------------------------------------------