From 73ef5499b7c5bb922da964123fd38beb5bb3512f Mon Sep 17 00:00:00 2001 From: GGB <1223416496@qq.com> Date: Mon, 13 Jun 2022 02:24:33 +0800 Subject: [PATCH] Init Center,Chat,CheckIn,dataSources,MainWindow,PoolHelper,SendMessage --- .idea/dataSources.xml | 7 +++ .../library/database/PoolHelper.java | 1 + .../com/cfive/classroom/student/Center.java | 48 +++++++++---------- .../com/cfive/classroom/student/Chat.java | 2 +- .../cfive/classroom/student/MainWindow.java | 8 +++- .../com/cfive/classroom/teacher/CheckIn.java | 8 +++- .../cfive/classroom/teacher/SendMessage.java | 2 +- 7 files changed, 46 insertions(+), 30 deletions(-) diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index f90f67d..af37438 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -8,5 +8,12 @@ jdbc:mysql://10.14.0.7:3306/class $ProjectFileDir$ + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://0.tcp.jp.ngrok.io:10088/class + $ProjectFileDir$ + \ No newline at end of file diff --git a/Library/src/main/java/com/cfive/classroom/library/database/PoolHelper.java b/Library/src/main/java/com/cfive/classroom/library/database/PoolHelper.java index ee25627..bc75d82 100644 --- a/Library/src/main/java/com/cfive/classroom/library/database/PoolHelper.java +++ b/Library/src/main/java/com/cfive/classroom/library/database/PoolHelper.java @@ -28,6 +28,7 @@ public class PoolHelper { config.setJdbcUrl(JDBC_URL); config.setUsername(JDBC_USERNAME); config.setPassword(JDBC_PASSWORD); + config.setInitializationFailTimeout(30000); config.addDataSourceProperty("cachePrepStmts", CACHE_PREP_STMTS); config.addDataSourceProperty("prepStmtCacheSize", PREP_STMT_CACHE_SIZE); config.addDataSourceProperty("maximumPoolSize", MAXIMUM_POOL_SIZE); 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 cc33c1b..60f042f 100644 --- a/Student/src/main/java/com/cfive/classroom/student/Center.java +++ b/Student/src/main/java/com/cfive/classroom/student/Center.java @@ -33,7 +33,7 @@ public class Center { private JTextField stuNoText; private JTextField stuNameText; private JButton signInButton; - private static JFrame frame = new JFrame("Center"); + private static JFrame frame = new JFrame("课堂互动通"); private StudentNet studentNet; private String host; private int port; @@ -57,7 +57,6 @@ public class Center { @Override public void actionPerformed(ActionEvent e) { LOGGER.info("chatButton.studentNet"+studentNet); - if (studentNet != null) { if (flag == false) { chat = new Chat(studentNet,stuNo,stuName,chatReceiveListener); @@ -135,29 +134,37 @@ public class Center { raiseHandButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - LOGGER.info(stuNo+stuName); - messageObject = new MessageObject(stuNo, stuName, null, null, null, null,null,MessageType.RaiseHand); - studentNet.sendMessage(messageObject); - LOGGER.info(messageObject.getStuNo()+messageObject.getStuName()); - JOptionPane.showMessageDialog(null,"你已经向老师举手"); + if (studentNet != null) { + LOGGER.info(stuNo+stuName); + messageObject = new MessageObject(stuNo, stuName, null, null, null, null,null,MessageType.RaiseHand); + studentNet.sendMessage(messageObject); + LOGGER.info(messageObject.getStuNo()+messageObject.getStuName()); + JOptionPane.showMessageDialog(null,"你已经向老师举手"); + } else { + JOptionPane.showMessageDialog(null,"没有连接至教师"); + } } }); //签到 signInButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - if (getSignInCode != null) { - signInCode = JOptionPane.showInputDialog(null, "签到码:", "签到", JOptionPane.PLAIN_MESSAGE); - LOGGER.info(getSignInCode); - if (getSignInCode.equals(signInCode)) { - studentNet.sendMessage(new MessageObject(stuNo, stuName, null, null, null, AttStatus.signed, LocalDateTime.now(), MessageType.CheckIn)); - LOGGER.info(stuNo+""+stuName); - JOptionPane.showMessageDialog(null, "签到成功"); + if (studentNet != null) { + if (getSignInCode != null) { + signInCode = JOptionPane.showInputDialog(null, "签到码:", "签到", JOptionPane.PLAIN_MESSAGE); + LOGGER.info(getSignInCode); + if (getSignInCode.equals(signInCode)) { + studentNet.sendMessage(new MessageObject(stuNo, stuName, null, null, null, AttStatus.signed, LocalDateTime.now(), MessageType.CheckIn)); + LOGGER.info(stuNo + "" + stuName); + JOptionPane.showMessageDialog(null, "签到成功"); + } else { + JOptionPane.showMessageDialog(null, "签到失败"); + } } else { - JOptionPane.showMessageDialog(null, "签到失败"); + JOptionPane.showMessageDialog(null, "无签到码"); } } else { - JOptionPane.showMessageDialog(null,"无签到码"); + JOptionPane.showMessageDialog(null,"没有连接至教师"); } } }); @@ -173,15 +180,6 @@ public class Center { frame.setVisible(true); } - public static void main(String[] args) { - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setContentPane(center.rootpanel); - frame.setSize(600,400); - frame.setLocationRelativeTo(null); - frame.setResizable(false); - frame.setVisible(true); - - } //获取学生姓名 public String getName(String stuNo){ String name = null; 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 03767bd..370f611 100644 --- a/Student/src/main/java/com/cfive/classroom/student/Chat.java +++ b/Student/src/main/java/com/cfive/classroom/student/Chat.java @@ -28,7 +28,7 @@ public class Chat { @Override public void actionPerformed(ActionEvent e) { String sendMessage = sendText.getText(); - if(sendMessage!=null) { + if(sendMessage.length()!=0) { LOGGER.info(stuNo+stuName); receiveText.append("我:"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒"))+"\n"+sendMessage+"\n"); studentNet.sendMessage(new MessageObject(stuNo, stuName, null,sendText.getText() ,null,null,LocalDateTime.now(),MessageType.Chat)); diff --git a/Student/src/main/java/com/cfive/classroom/student/MainWindow.java b/Student/src/main/java/com/cfive/classroom/student/MainWindow.java index c2e6fe9..b4126b3 100644 --- a/Student/src/main/java/com/cfive/classroom/student/MainWindow.java +++ b/Student/src/main/java/com/cfive/classroom/student/MainWindow.java @@ -24,6 +24,7 @@ public class MainWindow{ private JLabel password; private static JFrame frame = new JFrame("学生登录界面"); private static final Logger LOGGER = LogManager.getLogger(); + private boolean isConnectedToDatabase = false; public MainWindow() { //登录按钮 passwordText.addKeyListener(new KeyListener() { @@ -73,6 +74,7 @@ public class MainWindow{ try { LOGGER.info(DatabaseHelper.checkPasswdInStudent(Long.parseLong(stuNo), stuPassword)); checkPassword = DatabaseHelper.checkPasswdInStudent(Long.parseLong(stuNo), stuPassword); + isConnectedToDatabase = true; } catch (NoConfigException e) { JOptionPane.showMessageDialog(null,"没有数据库配置文件","警告",JOptionPane.ERROR_MESSAGE); LOGGER.error("No configuration", e); @@ -85,6 +87,11 @@ public class MainWindow{ LOGGER.error("NoSuchAlgorithmException",e); } catch (InvalidKeySpecException e) { LOGGER.error("InvalidKeySpecException",e); + }finally { + if (!isConnectedToDatabase) { + JOptionPane.showMessageDialog(null, "无法连接到数据库", "错误", JOptionPane.ERROR_MESSAGE); + } + isConnectedToDatabase = false; } return checkPassword; } @@ -93,7 +100,6 @@ public class MainWindow{ FlatLightLaf.setup(); frame.setContentPane(mainWindow.rootPanel); frame.setSize(600,400); - frame.setTitle("登录"); frame.setLocationRelativeTo(null); frame.setVisible(true); frame.setResizable(false); 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 be005ad..3ae5cec 100644 --- a/Teacher/src/main/java/com/cfive/classroom/teacher/CheckIn.java +++ b/Teacher/src/main/java/com/cfive/classroom/teacher/CheckIn.java @@ -78,7 +78,9 @@ public class CheckIn { if(e.getKeyChar()==KeyEvent.VK_ENTER){ //获取签到码广播出去 number = textField1.getText() + textField2.getText() + textField3.getText() + textField4.getText(); - if (number != null) { + LOGGER.info(number.length()); + LOGGER.info(number); + if (number .length() == 4) { teacherNet.sendAllMessage(new MessageObject(null, null, number, null, null, null, null, MessageType.CheckIn)); JOptionPane.showMessageDialog(null, "签到码发布成功", "消息", JOptionPane.INFORMATION_MESSAGE); frame.setVisible(false); @@ -97,7 +99,9 @@ public class CheckIn { @Override public void actionPerformed(ActionEvent e) { number = textField1.getText() + textField2.getText() + textField3.getText() + textField4.getText(); - if (number != null) { + LOGGER.info(number.length()); + LOGGER.info(number); + if (number .length() == 4) { teacherNet.sendAllMessage(new MessageObject(null, null, number, null, null, null, null, MessageType.CheckIn)); JOptionPane.showMessageDialog(null, "签到码发布成功", "消息", JOptionPane.INFORMATION_MESSAGE); frame.setVisible(false); 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 c486424..4a931e1 100644 --- a/Teacher/src/main/java/com/cfive/classroom/teacher/SendMessage.java +++ b/Teacher/src/main/java/com/cfive/classroom/teacher/SendMessage.java @@ -43,7 +43,7 @@ public class SendMessage { @Override public void actionPerformed(ActionEvent e) { String messageToAll = messageInput.getText(); - if(messageToAll!=null){ + if(messageToAll.length()!=0){ LocalDateTime sendTime = LocalDateTime.now(); messageShow.append("@所有人: "+sendTime.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒"))+'\n'+messageToAll+'\n'); MessageObject messageObject = new MessageObject(null,null,null,"@所有人:"+messageToAll,null,null,null,MessageType.ChatToAll);