-显示聊天信息
-用一个类来管理聊天界面,放到HashMap里面;
QqChat放到一个类里面进行管理;
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004737065-1039651300.png)
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004737422-1915233142.png)
HashMap管理就是引用了一下;
ManageQqChat类对显示来说非常重要了;
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004739249-1329007042.png)
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004739617-43238593.png)
-好友在线提示
在线-头像彩色;
不在线-头像灰色;
只有服务器才能知道谁在线、谁不在线;
-QqFriendList
-默认只有自己在线,别人不在线;
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004742617-1434682318.png)
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004742999-558786277.png)
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004743307-231659168.png)
-1/4应该知道互相在线
-思路:当一个用户登录成功后,就向服务器发送一个要求
返回在线好友的包,服务器就回送一个在线好友的信息包;
-客户端拿到信息包之后,再进行处理;
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004743703-55494149.png)
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004744305-1168164240.png)
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004745226-937672876.png)
//账号不同
m.setSender(u.getUserId());
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004745677-2118829806.png)
发送:sender 服务器回送:getter
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004746112-319990895.png)
更新在线好友:qqFriendList.updateFriend(m);
-SerConClientThread
public static String getAllonLineUserid()
-HashMap遍历K值---迭代器---Iterator
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004746471-1459426348.png)
![](https://img2018.cnblogs.com/blog/1167156/201812/1167156-20181201004746857-214958194.png)
登录成功以后,发送消息包;