diff --git a/Student/src/main/java/com/cfive/classroom/student/Center.java b/Student/src/main/java/com/cfive/classroom/student/Center.java
index 7f9e0bb..918ddd4 100644
--- a/Student/src/main/java/com/cfive/classroom/student/Center.java
+++ b/Student/src/main/java/com/cfive/classroom/student/Center.java
@@ -4,6 +4,7 @@ import com.cfive.classroom.library.database.DatabaseHelper;
import com.cfive.classroom.library.database.util.NoConfigException;
import com.cfive.classroom.library.net.StudentNet;
import com.cfive.classroom.library.net.util.MessageObject;
+import com.cfive.classroom.library.net.util.MessageType;
import com.cfive.classroom.library.net.util.ReceiveListener;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -84,7 +85,7 @@ public class Center {
studentNet.setOnReceiveListener(new ReceiveListener() {
@Override
public void onReceive(MessageObject messageObject) {
- if (messageObject.getCode().equals(signInCode)) {
+ if (messageObject.getMessageType()==MessageType.CheckIn&&messageObject.getCode().equals(signInCode)) {
JOptionPane.showMessageDialog(null, "签到成功");
} else {
JOptionPane.showMessageDialog(null,"签到失败");
@@ -98,7 +99,7 @@ public class Center {
raiseHandButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- messageObject = new MessageObject(stuNo, stuName, null, null, null,true);
+ messageObject = new MessageObject(stuNo, stuName, null, null, null, MessageType.RaiseHand);
studentNet.sendMessageThread(messageObject);
JOptionPane.showMessageDialog(null,"你已经向老师举手");
}
@@ -107,7 +108,7 @@ public class Center {
studentNet.setOnReceiveListener(new ReceiveListener() {
@Override
public void onReceive(MessageObject messageObject) {
- if (messageObject.isState()) {
+ if (messageObject.getMessageType()==MessageType.Select) {
JOptionPane.showMessageDialog(null,"恭喜以下同学被选中:\n\t\n"+messageObject.getCount());
}
}
diff --git a/Student/src/main/java/com/cfive/classroom/student/Chat.java b/Student/src/main/java/com/cfive/classroom/student/Chat.java
index b6e66ea..57f1d17 100644
--- a/Student/src/main/java/com/cfive/classroom/student/Chat.java
+++ b/Student/src/main/java/com/cfive/classroom/student/Chat.java
@@ -3,6 +3,7 @@ package com.cfive.classroom.student;
import com.cfive.classroom.library.net.ReceiveThread;
import com.cfive.classroom.library.net.StudentNet;
import com.cfive.classroom.library.net.util.MessageObject;
+import com.cfive.classroom.library.net.util.MessageType;
import com.cfive.classroom.library.net.util.ReceiveListener;
import javax.swing.*;
@@ -28,10 +29,10 @@ public class Chat {
@Override
public void actionPerformed(ActionEvent e) {
if(String.valueOf(sendText.getText())!=null) {
- studentNet.sendMessageThread(new MessageObject(stuNo, stuName, null, String.valueOf(sendText.getText()), null, false));
+ studentNet.sendMessageThread(new MessageObject(stuNo, stuName, null, String.valueOf(sendText.getText()), null, MessageType.Chat));
}
else{
- JOptionPane.showMessageDialog(null,"无发送内容");
+ JOptionPane.showMessageDialog(null,"无发送内容","错误!",JOptionPane.ERROR_MESSAGE);
}
}
});
@@ -39,7 +40,9 @@ public class Chat {
studentNet.setOnReceiveListener(new ReceiveListener() {
@Override
public void onReceive(MessageObject messageObject) {
- receiveText.setText("教师:\n"+messageObject.getMessage());
+ if(messageObject.getMessageType()==MessageType.ChatToAll){
+ receiveText.setText("教师:\n"+messageObject.getMessage());
+ }
}
});
}
diff --git a/Teacher/src/main/connect.properties b/Teacher/src/main/connect.properties
new file mode 100644
index 0000000..049ad58
--- /dev/null
+++ b/Teacher/src/main/connect.properties
@@ -0,0 +1,3 @@
+#
+#Sat Jun 11 00:33:50 CST 2022
+port=8888
diff --git a/Teacher/src/main/java/com/cfive/classroom/teacher/Attendance.java b/Teacher/src/main/java/com/cfive/classroom/teacher/Attendance.java
index bed1af1..9dea2ad 100644
--- a/Teacher/src/main/java/com/cfive/classroom/teacher/Attendance.java
+++ b/Teacher/src/main/java/com/cfive/classroom/teacher/Attendance.java
@@ -1,5 +1,6 @@
package com.cfive.classroom.teacher;
+import com.cfive.classroom.library.net.TeacherNet;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -22,6 +23,7 @@ public class Attendance {
private JTable table_already;
private JTable table_undo;
private JLabel test;
+ private TeacherNet teacherNet;
private static final Logger LOGGER= LogManager.getLogger();
public Attendance() {
@@ -52,11 +54,12 @@ public class Attendance {
frame.setVisible(false);
}
- public void start(){
+ public void start(TeacherNet teacherNet1){
frame.setContentPane(attendance.rootPanel);
frame.setSize(600,400);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
+ attendance.teacherNet=teacherNet1;
DefaultTableModel alreadyTableModel=new DefaultTableModel(data,t1_columnTitle);
alreadyTableModel.setColumnCount(3);
attendance.table_already.setModel(alreadyTableModel);
diff --git a/Teacher/src/main/java/com/cfive/classroom/teacher/ChangePassword.form b/Teacher/src/main/java/com/cfive/classroom/teacher/ChangePassword.form
index c43be88..a334c60 100644
--- a/Teacher/src/main/java/com/cfive/classroom/teacher/ChangePassword.form
+++ b/Teacher/src/main/java/com/cfive/classroom/teacher/ChangePassword.form
@@ -114,7 +114,7 @@
-
+
@@ -122,7 +122,7 @@
-
+
diff --git a/Teacher/src/main/java/com/cfive/classroom/teacher/ChangePassword.java b/Teacher/src/main/java/com/cfive/classroom/teacher/ChangePassword.java
index 6ef0f8e..4b1a961 100644
--- a/Teacher/src/main/java/com/cfive/classroom/teacher/ChangePassword.java
+++ b/Teacher/src/main/java/com/cfive/classroom/teacher/ChangePassword.java
@@ -1,23 +1,48 @@
package com.cfive.classroom.teacher;
+import com.cfive.classroom.library.database.DatabaseHelper;
+import com.cfive.classroom.library.database.util.DependenciesNotFoundException;
+import com.cfive.classroom.library.database.util.NoConfigException;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
import javax.swing.*;
+import java.security.NoSuchAlgorithmException;
+import java.security.spec.InvalidKeySpecException;
+import java.sql.SQLException;
public class ChangePassword {
private static final ChangePassword changePassword=new ChangePassword();
+ private static JFrame frame = new JFrame("修改密码");
private JPanel rootPanel;
private JTextField workNo_input;
private JButton cancel;
private JButton confirm;
- private JPasswordField passwordField1;
- private JPasswordField passwordField2;
+ private JPasswordField newPw_ok;
+ private JPasswordField newPassword;
private String workNo,password1,password2;
+ private static final Logger LOGGER = LogManager.getLogger();
- static JFrame frame = new JFrame("ChangePassword");
public ChangePassword() {
confirm.addActionListener(e -> {
if(check()){
//将修改后的密码在数据表修改
+ try {
+ DatabaseHelper.changePasswdInTeacher(Long.valueOf(workNo_input.getText()),newPw_ok.getPassword().toString());
+ } catch (NoConfigException ex) {
+ JOptionPane.showMessageDialog(null,"没有数据库配置文件","警告",JOptionPane.ERROR_MESSAGE);
+ LOGGER.error("No configuration", e);
+ } catch (SQLException ex) {
+ JOptionPane.showMessageDialog(null,"数据库出错","警告",JOptionPane.ERROR_MESSAGE);
+ LOGGER.error("SQLException",e);
+ } catch (DependenciesNotFoundException ex) {
+ LOGGER.error("DependenciesNotFoundException",e);
+ } catch (NoSuchAlgorithmException ex) {
+ LOGGER.error("NoSuchAlgorithmException",e);
+ } catch (InvalidKeySpecException ex) {
+ LOGGER.error("InvalidKeySpecException",e);
+ }
frame.dispose();
}
});
@@ -45,8 +70,8 @@ public class ChangePassword {
}
private boolean check() {
- password1 = String.valueOf(changePassword.passwordField1.getPassword());
- password2 = String.valueOf(changePassword.passwordField2.getPassword());
+ password1 = String.valueOf(changePassword.newPw_ok.getPassword());
+ password2 = String.valueOf(changePassword.newPassword.getPassword());
if(String.valueOf(changePassword.workNo_input.getText()).equals(workNo))
{
if (password1.length()==0 || password2.length()==0) {
diff --git a/Teacher/src/main/java/com/cfive/classroom/teacher/CheckIn.java b/Teacher/src/main/java/com/cfive/classroom/teacher/CheckIn.java
index f8eb064..700692b 100644
--- a/Teacher/src/main/java/com/cfive/classroom/teacher/CheckIn.java
+++ b/Teacher/src/main/java/com/cfive/classroom/teacher/CheckIn.java
@@ -1,5 +1,8 @@
package com.cfive.classroom.teacher;
+import com.cfive.classroom.library.net.TeacherNet;
+import com.cfive.classroom.library.net.util.MessageObject;
+import com.cfive.classroom.library.net.util.MessageType;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -20,16 +23,18 @@ public class CheckIn {
private JButton bt_confim;
private JButton bt_cancel;
private String n1,n2,n3,n4,number;
+ private TeacherNet teacherNet;
private static final Logger LOGGER= LogManager.getLogger();
public CheckIn() {
- //限制签到码的长度
+ //取消按钮的监听
bt_cancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- frame.setVisible(false);
+ frame.dispose();
}
});
+ //限制签到码的长度
textField1.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
@@ -70,7 +75,15 @@ public class CheckIn {
@Override
public void actionPerformed(ActionEvent e) {
number=n1+n2+n3+n4;
- LOGGER.info(number);
+ if(number!=null){
+ LOGGER.info(number);
+ teacherNet.sendAllMessage(new MessageObject(null,null,number,null,null, MessageType.CheckIn));
+ JOptionPane.showMessageDialog(null,"签到码发布成功","消息",JOptionPane.INFORMATION_MESSAGE);
+ frame.dispose();
+ }else {
+ JOptionPane.showMessageDialog(null,"签到码不能为空","错误",JOptionPane.ERROR_MESSAGE);
+ }
+
}
});
}
@@ -81,11 +94,12 @@ public class CheckIn {
frame.pack();
frame.setVisible(false);
}
- public void start(){
+ public void start(TeacherNet teacherNet1){
frame.setContentPane(checkIn.rootPanel);
frame.setSize(600,400);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
+ checkIn.teacherNet=teacherNet1;
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
diff --git a/Teacher/src/main/java/com/cfive/classroom/teacher/ClassList.form b/Teacher/src/main/java/com/cfive/classroom/teacher/ClassList.form
index 249e911..7f74851 100644
--- a/Teacher/src/main/java/com/cfive/classroom/teacher/ClassList.form
+++ b/Teacher/src/main/java/com/cfive/classroom/teacher/ClassList.form
@@ -67,7 +67,7 @@
-
+
diff --git a/Teacher/src/main/java/com/cfive/classroom/teacher/ClassList.java b/Teacher/src/main/java/com/cfive/classroom/teacher/ClassList.java
index 18e8c7d..e571ef0 100644
--- a/Teacher/src/main/java/com/cfive/classroom/teacher/ClassList.java
+++ b/Teacher/src/main/java/com/cfive/classroom/teacher/ClassList.java
@@ -4,87 +4,72 @@ import com.cfive.classroom.library.database.DatabaseHelper;
import com.cfive.classroom.library.database.bean.Course;
import com.cfive.classroom.library.database.util.DependenciesNotFoundException;
import com.cfive.classroom.library.database.util.NoConfigException;
-import com.cfive.classroom.library.net.TeacherNet;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
import java.sql.SQLException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
+import java.util.*;
public class ClassList {
- private static final ClassList classlist=new ClassList();
+ private static final ClassList classList = new ClassList();
private static JFrame frame = new JFrame("课堂互动通-教师端");
private JPanel rootPanel1;
- private JButton Button1;
+ private JButton bt_enter;
private JComboBox comboBox;
private JPanel selectPanel;
- private String workerNo, subName;
- private List courseList;
+ private String workerNo,courseID,subName;
+ private final List courseList = new ArrayList<>();
private static final Logger LOGGER = LogManager.getLogger();
- private TeacherNet teacherNet;
+
public ClassList() {
- Button1.addActionListener(new ActionListener() {
+ bt_enter.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- subName =(String) classlist.comboBox.getSelectedItem();
- //从配置文件中读取端口号并传参到主界面
- Properties properties = new Properties();
- try {
- properties.load(new BufferedReader(new FileReader("Teacher/src/main/connect.properties")));
- } catch (IOException ex) {
- throw new RuntimeException(ex);
+ if (!Objects.equals(classList.comboBox.getSelectedItem(), "--请选择--")) { //判断是否有选择内容
+ String select = classList.comboBox.getSelectedItem().toString();
+ courseID = select.substring(0, select.indexOf(" "));
+ subName=select.substring(select.indexOf(" ")+1);
+ LOGGER.debug(courseID+" "+subName);
+ Main.start(workerNo,courseID,subName);
+ } else {
+ JOptionPane.showMessageDialog(null, "请选择您想要进入的课程", "温馨提示!", JOptionPane.WARNING_MESSAGE);
}
- LOGGER.info(properties.getProperty("port"));
- try {
- teacherNet = new TeacherNet(Integer.valueOf(properties.getProperty("port")));
- } catch (IOException ex) {
- throw new RuntimeException(ex);
- }
- if(subName!=null){
- Main.start(classlist.workerNo,classlist.subName,teacherNet);
- }
- frame.setVisible(false);
}
});
}
public static void main(String[] args) {
- frame.setContentPane(classlist.rootPanel1);
+ frame.setContentPane(classList.rootPanel1);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(false);
}
- public void start(String workerNo){
- frame.setContentPane(classlist.rootPanel1);
- frame.setSize(600,400);
+
+ public void start(String workerNo) {
+ frame.setContentPane(classList.rootPanel1);
+ frame.setSize(600, 400);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
- classlist.workerNo=workerNo;
- //添加下拉列表的内容:该教师所教的科目名
+ classList.workerNo = workerNo;
+ //添加下拉列表的内容:该教师所教的科目名以及其课程编号
try {
- courseList=DatabaseHelper.queryCourses(Long.valueOf(classlist.workerNo));
- if(courseList!=null){
- Iterator iterator = courseList.iterator(); //使用迭代器进行遍历
- while(iterator.hasNext()){
- String subName = iterator.next().getSubject().getSubName();
- classlist.comboBox.addItem(subName);
- }
+ classList.comboBox.addItem("--请选择--");
+ courseList.addAll(DatabaseHelper.queryCourses(Long.parseLong(classList.workerNo)));
+ for (Course course : courseList) {
+ classList.comboBox.addItem(course.getCourID()+" "+course.getSubject().getSubName());
}
} catch (NoConfigException e) {
- throw new RuntimeException(e);
+ JOptionPane.showMessageDialog(null, "没有数据库配置文件", "警告", JOptionPane.ERROR_MESSAGE);
+ LOGGER.error("No configuration", e);
} catch (SQLException e) {
- throw new RuntimeException(e);
+ JOptionPane.showMessageDialog(null, "数据库出错", "警告", JOptionPane.ERROR_MESSAGE);
+ LOGGER.error("SQLException", e);
} catch (DependenciesNotFoundException e) {
- throw new RuntimeException(e);
+ LOGGER.error("DependenciesNotFoundException", e);
}
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
diff --git a/Teacher/src/main/java/com/cfive/classroom/teacher/Main.java b/Teacher/src/main/java/com/cfive/classroom/teacher/Main.java
index f695c62..b60ce6d 100644
--- a/Teacher/src/main/java/com/cfive/classroom/teacher/Main.java
+++ b/Teacher/src/main/java/com/cfive/classroom/teacher/Main.java
@@ -1,11 +1,14 @@
package com.cfive.classroom.teacher;
import com.cfive.classroom.library.database.DatabaseHelper;
+import com.cfive.classroom.library.database.bean.Course;
import com.cfive.classroom.library.database.bean.Student;
+import com.cfive.classroom.library.database.bean.Subject;
import com.cfive.classroom.library.database.util.DependenciesNotFoundException;
import com.cfive.classroom.library.database.util.NoConfigException;
import com.cfive.classroom.library.net.TeacherNet;
import com.cfive.classroom.library.net.util.MessageObject;
+import com.cfive.classroom.library.net.util.MessageType;
import com.cfive.classroom.library.net.util.ReceiveListener;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -13,14 +16,16 @@ import org.apache.logging.log4j.Logger;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.io.*;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import java.util.Properties;
public class Main {
- private static final Main main=new Main();
- private static JFrame frame = new JFrame("课堂互动通");
+ private static final Main main = new Main();
+ private static JFrame frame = new JFrame("课堂互动通");
private JPanel rootPanel;
private JButton bt_checkIn;
private JButton bt_attendance;
@@ -30,108 +35,137 @@ public class Main {
private JButton changePasswordButton;
private JTextField workNo_show;
private JTextField subName_show;
- private String workNo,subName;
+ private String workNo,courseID;
private List studentList;
private String[] student;
- private static final Logger LOGGER = LogManager.getLogger();
private TeacherNet teacherNet;
+ private final Logger LOGGER = LogManager.getLogger();
public Main() {
+
+ //从配置文件中读取端口号并传参到主界面
+ Properties properties = new Properties();
+ try {
+ properties.load(new FileReader("Teacher/src/main/connect.properties"));
+ } catch (IOException ex) {
+ LOGGER.error("IOException", ex);
+ }
+ LOGGER.debug(properties.getProperty("port"));
+ try {
+ if (!properties.getProperty("port").isEmpty()) {
+ teacherNet = new TeacherNet(Integer.valueOf(properties.getProperty("port")));
+ }
+ } catch (IOException ex) {
+ LOGGER.error("IOException", ex);
+ }
+
//发送消息按钮的监听
bt_sendMessage.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- SendMessage sendMessage=new SendMessage();
+ SendMessage sendMessage = new SendMessage();
sendMessage.start(teacherNet);
}
});
+
//发布签到按钮的监听
bt_checkIn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- CheckIn checkIn=new CheckIn();
- checkIn.start();
+ CheckIn checkIn = new CheckIn();
+ checkIn.start(teacherNet);
}
});
- ////考勤情况按钮的监听
+
+ // 考勤情况按钮的监听
bt_attendance.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- Attendance attendance=new Attendance();
- attendance.start();
+ Attendance attendance = new Attendance();
+ attendance.start(teacherNet);
}
});
- ////随机选人按钮的监听
+
+ //随机选人按钮的监听
bt_select.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int person;
- String count;
+ String count="";
Object[] dropList = {"提问1个同学", "提问2个同学", "提问3个同学", "提问4个同学", "提问5个同学", "提问6个同学", "提问7个同学"};
Object selectedValue = JOptionPane.showInputDialog(null, "选择提问同学个数", "随机选人,持续工作中...",
JOptionPane.INFORMATION_MESSAGE, null, dropList, dropList[0]); //下拉列表的内容:选择提问的人数
- while (true) {
- count = "";
- String substring = selectedValue.toString().substring(2, 3); //获取所选择的人数转化成int类型
- int i = Integer.parseInt(substring);
- String[] arr = new String[i]; //new一个该数长度的String数组
+ String substring = selectedValue.toString().substring(2, 3); //获取所选择的人数转化成int类型
+ int i = Integer.parseInt(substring);
+ String[] arr = new String[i]; //new一个该数长度的String数组
- try {
- studentList = DatabaseHelper.selectStudentsFromCourse(DatabaseHelper.selectFromSubject(subName).getSubID());
- if(studentList!=null){
- for (int j = 0; j < i; ) {
- //随机得到的数值
- person = (int) (Math.random() * studentList.size());
- //将该数组转化为列表,并看该列表是否包含该随机数,没有则添加进去
- if (!Arrays.asList(arr).contains(String.valueOf(person))) {
- arr[j] = String.valueOf(person);
- j++;
- }
+ try {
+ studentList = DatabaseHelper.selectStudentsFromCourse(Long.parseLong(courseID));
+ if (!studentList.isEmpty()) { //判断是否获取到学生名单
+ LOGGER.info("学生列表" + studentList);
+ for (int j = 0; j < i; ) {
+ //随机得到的数值
+ person = (int) (Math.random() * studentList.size());
+ LOGGER.info("随机值:" + person);
+ //将该数组转化为列表,并看该列表是否包含该随机数,没有则添加进去(确保随机数不重复)
+ if (!Arrays.asList(arr).contains(String.valueOf(person))) {
+ arr[j] = String.valueOf(person);
+ j++;
}
- Iterator iterator = studentList.iterator();
- while (iterator.hasNext()){
- student=new String[studentList.size()];
- for(int k=0;k< studentList.size();k++){
- student[k]=iterator.next().getStuName();
- }
-
- }
- for (int s = 0; s < arr.length; s++) { //遍历该数组并把每一个随机数所对应的人放到count中
- person = Integer.parseInt(arr[s]);
- count +=student[person];
- }
- JOptionPane.showMessageDialog(null, "恭喜以下同学被选中:\n\t\n" + count);
- //将选人结果群发出去
- teacherNet.sendAllMessage(new MessageObject(null,null,null,null,count,true));
}
- break;
- } catch (DependenciesNotFoundException ex) {
- throw new RuntimeException(ex);
- } catch (NoConfigException ex) {
- throw new RuntimeException(ex);
- } catch (SQLException ex) {
- throw new RuntimeException(ex);
+ Iterator iterator = studentList.iterator();
+ while (iterator.hasNext()) {
+ student = new String[studentList.size()];
+ for (int k = 0; k < studentList.size(); k++) {
+ student[k] = iterator.next().getStuName();
+ }
+
+ }
+ for (int s = 0; s < arr.length; s++) { //遍历该数组并把每一个随机数所对应的人放到count中
+ person = Integer.parseInt(arr[s]);
+ count += student[person];
+ count+=" ";
+ }
+ JOptionPane.showMessageDialog(null, "恭喜以下同学被选中:\n\t\n" + count);
+ //将选人结果群发出去
+ teacherNet.sendAllMessage(new MessageObject(null, null, null, null, count, MessageType.Select));
+ }else {
+ JOptionPane.showMessageDialog(null, "学生名单未导入", "错误", JOptionPane.ERROR_MESSAGE);
}
+ } catch (DependenciesNotFoundException ex) {
+ LOGGER.error("DependenciesNotFoundException", e);
+ } catch (NoConfigException ex) {
+ JOptionPane.showMessageDialog(null, "没有数据库配置文件", "警告", JOptionPane.ERROR_MESSAGE);
+ LOGGER.error("No configuration", e);
+ } catch (SQLException ex) {
+ JOptionPane.showMessageDialog(null, "数据库出错", "警告", JOptionPane.ERROR_MESSAGE);
+ LOGGER.error("SQLException", e);
}
+
}
});
+
//修改密码按钮的监听
changePasswordButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- ChangePassword changePassword=new ChangePassword();
+ ChangePassword changePassword = new ChangePassword();
changePassword.start(main.workNo);
}
});
- //学生端举手监听
+ //主界面线程监听
teacherNet.setOnReceiveListener(new ReceiveListener() {
@Override
public void onReceive(MessageObject messageObject) {
- if (messageObject.isState()) {
- JOptionPane.showMessageDialog(null,messageObject.getStuName()+" 举手了","温馨提示!",JOptionPane.INFORMATION_MESSAGE);
- messageObject.setState(false);
+ //学生端举手监听
+ if (messageObject.getMessageType() == MessageType.RaiseHand) {
+ JOptionPane.showMessageDialog(null, messageObject.getStuName() + " 举手了", "温馨提示!", JOptionPane.INFORMATION_MESSAGE);
+ }
+ //学生留言监听
+ if (messageObject.getMessageType() == MessageType.Chat) {
+ JOptionPane.showMessageDialog(null, messageObject.getMessage(), "学生 " + messageObject.getStuName() + " 向您留言", JOptionPane.INFORMATION_MESSAGE);
}
}
});
@@ -144,17 +178,17 @@ public class Main {
frame.setVisible(false);
}
- public static void start(String workerNo, String subName, TeacherNet teacherNet1){
+ public static void start(String workerNo,String courseID,String subName) {
frame.setContentPane(main.rootPanel);
- frame.setSize(600,400);
+ frame.setSize(600, 400);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
- main.workNo=workerNo;
- main.subName=subName;
- main.teacherNet = teacherNet1;
+ main.workNo = workerNo;
+ main.courseID = courseID;
//开启主界面即读取端口号
main.workNo_show.setText(workerNo);
main.subName_show.setText(subName);
+
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
diff --git a/Teacher/src/main/java/com/cfive/classroom/teacher/SendMessage.form b/Teacher/src/main/java/com/cfive/classroom/teacher/SendMessage.form
index a1c747d..c8285d2 100644
--- a/Teacher/src/main/java/com/cfive/classroom/teacher/SendMessage.form
+++ b/Teacher/src/main/java/com/cfive/classroom/teacher/SendMessage.form
@@ -9,7 +9,7 @@
-
+
@@ -36,14 +36,14 @@
-
+
-
+
diff --git a/Teacher/src/main/java/com/cfive/classroom/teacher/SendMessage.java b/Teacher/src/main/java/com/cfive/classroom/teacher/SendMessage.java
index 5fa7423..9ea458a 100644
--- a/Teacher/src/main/java/com/cfive/classroom/teacher/SendMessage.java
+++ b/Teacher/src/main/java/com/cfive/classroom/teacher/SendMessage.java
@@ -1,8 +1,15 @@
package com.cfive.classroom.teacher;
import com.cfive.classroom.library.net.TeacherNet;
+import com.cfive.classroom.library.net.util.MessageObject;
+import com.cfive.classroom.library.net.util.MessageType;
+import com.cfive.classroom.library.net.util.ReceiveListener;
import javax.swing.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ComponentAdapter;
+import java.text.SimpleDateFormat;
public class SendMessage {
private static final SendMessage sendMessage=new SendMessage();
@@ -10,10 +17,46 @@ public class SendMessage {
private static JFrame frame = new JFrame("SendMessage");
private JPanel rootPanel;
private JTextArea messageInput;
- private JButton bt_send;
+ private JButton bt_sendMessage;
private JTextArea messageShow;
private TeacherNet teacherNet;
+ public SendMessage() {
+ //接收学生发过来的留言
+ if(teacherNet!=null){
+ teacherNet.setOnReceiveListener(new ReceiveListener() {
+ @Override
+ public void onReceive(MessageObject messageObject) {
+ if(messageObject.getMessageType()==MessageType.Chat){
+ SimpleDateFormat sendTime = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
+ messageShow.append("学生 "+messageObject.getStuName()+": "+sendTime.format(System.currentTimeMillis())+'\n'+messageObject.getMessage());
+ System.out.println();
+ }
+
+ }
+ });
+ }
+
+
+ //发送按钮的监听
+ bt_sendMessage.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ String messageToAll = messageInput.getText();
+ if(messageToAll!=null){
+ SimpleDateFormat sendTime = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
+ messageShow.append("@所有人: "+sendTime.format(System.currentTimeMillis())+'\n'+messageToAll+'\n');
+ MessageObject messageObject = new MessageObject(null,null,null,"@所有人:"+messageToAll,null, MessageType.ChatToAll);
+ teacherNet.sendAllMessage(messageObject);
+ messageInput.setText("");
+ }else {
+ JOptionPane.showMessageDialog(null,"无发送内容","错误!",JOptionPane.ERROR_MESSAGE);
+ }
+
+ }
+ });
+ }
+
public static void main(String[] args) {
frame.setContentPane(sendMessage.rootPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
diff --git a/Teacher/src/main/java/com/cfive/classroom/teacher/SignIn.java b/Teacher/src/main/java/com/cfive/classroom/teacher/SignIn.java
index 51fc7c7..f2f621c 100644
--- a/Teacher/src/main/java/com/cfive/classroom/teacher/SignIn.java
+++ b/Teacher/src/main/java/com/cfive/classroom/teacher/SignIn.java
@@ -40,28 +40,28 @@ public class SignIn {
if(sigIn.workerNo.length()==0||sigIn.password.length()==0){ //判断用户名和密码是否为空
JOptionPane.showMessageDialog(null,"用户名和密码不能为空","提示!!",JOptionPane.ERROR_MESSAGE);
}else{
+ //根据输入的工号和密码利用加盐位进行判断
try {
if(DatabaseHelper.checkPasswdInTeacher(Long.valueOf(sigIn.workerNo), sigIn.password)){
ClassList classList = new ClassList();
- String test=sigIn.workerNo_input.getText().toString();
- classList.start(test);
+ classList.start(sigIn.workerNo); //将工号传参到下一个界面
frame.setVisible(false);
}else {
JOptionPane.showMessageDialog(null,"密码错误,请重新输入","错误!!",JOptionPane.ERROR_MESSAGE);
}
} catch (NoConfigException ex) {
- throw new RuntimeException(ex);
+ JOptionPane.showMessageDialog(null,"没有数据库配置文件","警告",JOptionPane.ERROR_MESSAGE);
+ LOGGER.error("No configuration", e);
} catch (SQLException ex) {
- throw new RuntimeException(ex);
+ JOptionPane.showMessageDialog(null,"数据库出错","警告",JOptionPane.ERROR_MESSAGE);
+ LOGGER.error("SQLException",e);
} catch (DependenciesNotFoundException ex) {
- throw new RuntimeException(ex);
+ LOGGER.error("DependenciesNotFoundException",e);
} catch (NoSuchAlgorithmException ex) {
- throw new RuntimeException(ex);
+ LOGGER.error("NoSuchAlgorithmException",e);
} catch (InvalidKeySpecException ex) {
- throw new RuntimeException(ex);
+ LOGGER.error("InvalidKeySpecException",e);
}
-
-
}
}