读书人

XMPP通信开发-仿QQ显示好友列表和用户

发布时间: 2013-10-08 17:02:59 作者: rapoo

XMPP通讯开发-仿QQ显示好友列表和用户组

XMPP通讯开发-服务器好友获取以及监听状态变化 中我们获取服务器上的用户好友信息,然后结合XMPP通讯开发-好友获取界面设计 我们将两个合并起来,首先获取用户组,然后把用户组用List存储起来用作对比好友的用户组,根据用户组的个数然后创建相应的DefaultMutableTreeNode节点用于添加好友,获取好友列表,根据用户组把当前用户添加的所属的用户组,这里要注意的是一个好友可以存在不同的用户组里面,所以获取的好友所在的组也是一个集合,最后在添加一个根的DefaultMutableTreeNode把之前用户组都添加到根组里面,最后把根组添加到JTree里面最后再把JTree添加到jTabbedPane里面.主要代码如下:

  /**     * 获取用户好友     */    public void getRoster() {        if (conn != null) {            roster = conn.getRoster();            getRosterPresenceChange();            Collection<RosterGroup> groups = roster.getGroups();            int size = groups.size();            treeNode = new DefaultMutableTreeNode[size];            int i = 0;            for (RosterGroup group : groups) {                groupsList.add(group.getName());                treeNode[i] = new DefaultMutableTreeNode(group.getName());                i++;            }            Collection<RosterEntry> entries = roster.getEntries();            for (RosterEntry entry : entries) {                Collection<RosterGroup> group = entry.getGroups();                for (RosterGroup g : group) {                    if (groupsList != null) {                        int size_1 = groupsList.size();                        for (i = 0; i < size_1; i++) {                            if (g.getName().equals(groupsList.get(i))) {                                treeNode[i].add(new DefaultMutableTreeNode(entry.getName()));                            }                        }                    }                }            }            for (i = 0; i < size; i++) {                top.add(treeNode[i]);            }            JTree tree = new JTree(top);            JScrollPane scrollPane = new JScrollPane();            scrollPane.setViewportView(tree);           jTabbedPane.addTab("好 友", scrollPane);        }    }

效果图如下:
XMPP通信开发-仿QQ显示好友列表和用户组

XMPP通信开发-仿QQ显示好友列表和用户组


XMPP通信开发-仿QQ显示好友列表和用户组


源码项目:https://github.com/jwzhangjie/IChat_PC.git





读书人网 >移动开发

热点推荐