zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    
    
    
    

    效果图如下:



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



  • 相关阅读:
    reids 入门
    关于字典的那些事儿.
    更新阿里源repo出的问题
    关于-编码进阶
    *** 数据类型之间的转化
    关于列表那些事:12.24
    while else 结构体(自测)
    关于切片的步长为正负值 的问题(自测)
    if 嵌套if 的先后顺序的区别 (自测)
    二: python基础数据类型(int,
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3341655.html
Copyright © 2011-2022 走看看