8.3,8.4总结

1.改进渲染

                    // 加载头像图像
                    InputStream inputStream = new ByteArrayInputStream(message.getFileBytes());
                    Image image = new Image(inputStream); // 第二个参数表示是否缓存图片,根据需要设置
                    imageView.setImage(image);

                    // 设置头像视图大小
                    imageView.setFitWidth(50);
                    imageView.setFitHeight(50);



                    // 聊天气泡效果的容器
                    Pane messageBubble = new Pane();
                    messageBubble.setStyle("-fx-background-color: #e0e9ff; -fx-background-radius: 10;");
                    messageBubble.setMaxWidth(200); // 设置最大宽度
                    messageBubble.setPadding(new Insets(5)); // 设置内边距
                    messageBubble.getChildren().add(messageText);

2.修改聊天bug 

之前三个人聊天会有些问题

 //根据message获取getterid,然后再得到对应先线程
                    ServerConnectClientThread serverConnectClientThread=ManageClientThreads
                            .getServerConnectClientThread(message.getGetter());

                    BaseService.GetM(message.getSender(),message);


                    ObjectOutputStream oos=new ObjectOutputStream(serverConnectClientThread.getSocket().getOutputStream());
                    oos.writeObject(message);//转发,如果客户不在线,可以保存到数据库,这样可以实现离线留言

                    Message message1=new Message();
                   message1=message;
                    ObjectOutputStream oos1=new ObjectOutputStream(socket.getOutputStream());
                    message1.setMesType(MessageType.MESSAGE_COMM_MES);
                    oos1.writeObject(message1);

3.完善了,添加好友与请求处理

添加好友改了表,好友申请表和好友列表,能实时更新,还有打开更新。

//界面初始化,我的好友
    public static void sendupdateListFriend(String user1){
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection(URL, USER, PASSWORD);

            // 2. 准备 SQL 查询语句
            String sql = "SELECT * FROM friendstable WHERE User1 = ?";
            stmt = conn.prepareStatement(sql);
            stmt.setString(1, user1); // 设置查询参数

            // 3. 执行查询
            rs = stmt.executeQuery();

            // 4. 处理查询结果
            while (rs.next()) {
               
//发送过去

//*****************************************************
            }

        } catch (ClassNotFoundException e) {
           e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
    //界面,我的好友更新
    public static void sendupdateListFriendEnd(String user1){
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection(URL, USER, PASSWORD);

            // 2. 准备 SQL 查询语句
            String sql = "SELECT * FROM friendstable WHERE User1 = ?";
            stmt = conn.prepareStatement(sql);
            stmt.setString(1, user1); // 设置查询参数

            // 3. 执行查询
            rs = stmt.executeQuery();

            // 4. 处理查询结果
            while (rs.next()) {
                String user2 = rs.getString("User2");

                // 这里可以根据需要处理每行数据,例如打印输出或者其他逻辑处理
                Message message1=new Message();
                message1.setGetter(user2);
                BaseService.GetM(user2,message1);


                try {
                    //清空好友列表的
                   //*****************代码*****************

                       
//好友
 BaseService.sendupdateListFriend(user2);
                    }


                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                System.out.println(user1 +"初始好友列表有:"+user2);
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

4.展示好友/我的资料

a.左边我的

b.右边好友的

5.聊天记录的建表

表名:chat_records

字段:Sender_id 发送者,Getter_id 接受者,SendTime发送时间,Message_type消息类型,

MessageContent 消息内容

 

 

6.聊天列表的刷新 

a.这是与黄头的聊天

b.点击绿头时,这是绿头的聊天

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值