Jtree-对后台传来的数据报文动态创建树节点

115128_hWF0_2664244.png  

 //左侧树创建

    public JTree refreshTreeTable(){

        //eventOneInfo为传来的数据报文Vector<Vector<String>> eventOneInfo ;

        //[[4,realtime,public,scd1],[4,realtime,public,scd2],[4,realtime,public_2,scd2],     [4,realtime,public_3,scd2]]
        if (eventOneInfo.isEmpty()) {
            // 树的数据模型
            treemodel = new DefaultTreeModel(root);
            // 设置数据模型
            jTree = new JTree();
            jTree.setModel(treemodel);
            jTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
            jTree.setRootVisible(false);
            jTree.updateUI();

        }
        SwingUtilities.invokeLater(new  Runnable() {
            
            @Override
            public void run() {
                // TODO Auto-generated method stub
                
                for (int i = 0; i < eventOneInfo.size(); i++) {
                    Vector<String> element_one=eventOneInfo.elementAt(i);
                    DefaultMutableTreeNode node1_one = new DefaultMutableTreeNode(element_one.get(1).trim());
                    DefaultMutableTreeNode node1_two = new DefaultMutableTreeNode(element_one.get(2).trim());
                    DefaultMutableTreeNode node1_three = new DefaultMutableTreeNode(element_one.get(3).trim());
                    
                    node1_one =searchNode(element_one.elementAt(1).trim(), root);
                    if (node1_one != null) {
                        node1_two =searchNode(element_one.elementAt(2).trim(), node1_one);
                        if (node1_two != null) {
                            node1_three =searchNode(element_one.elementAt(3).trim(), node1_two);
                            if (node1_three != null) {
                                
                            }else {
                                node1_three = new DefaultMutableTreeNode(element_one.elementAt(3).trim());
                                treemodel.insertNodeInto(node1_three, node1_two, node1_two.getChildCount());
//                                ((DefaultTreeModel)jTree.getModel()).insertNodeInto(node1_three, node1_two, node1_two.getChildCount());
                            }
                            
                        }else {
                            node1_two = new DefaultMutableTreeNode(element_one.elementAt(2).trim());
                            node1_two.add(node1_three);
                            treemodel.insertNodeInto(node1_two, node1_one, node1_one.getChildCount());
//                            ((DefaultTreeModel)jTree.getModel()).insertNodeInto(node1_two, node1_one, node1_one.getChildCount());
                            
                        }
                        
                    }else {
                        node1_one = new DefaultMutableTreeNode(element_one.elementAt(1).trim());
                        node1_two.add(node1_three);
                        node1_one.add(node1_two);
                        treemodel.insertNodeInto(node1_one, root, root.getChildCount());
//                        ((DefaultTreeModel)jTree.getModel()).insertNodeInto(node1_one, root, root.getChildCount());
                    }
                    
                }
                
            }
        });
        // 设置数据模型
        jTree = new JTree();
        jTree.setModel(treemodel);
        jTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
        jTree.setRootVisible(false);
        jTree.updateUI();
        
        return jTree;
        
    }

//=================================================================

//树节点查找
    public DefaultMutableTreeNode searchNode(String nodeStr, DefaultMutableTreeNode m_rootNode)
    {
        DefaultMutableTreeNode node = null;
        Enumeration e = m_rootNode.breadthFirstEnumeration();
        while (e.hasMoreElements())
        {
            node = (DefaultMutableTreeNode) e.nextElement();
            if (nodeStr.equals(node.getUserObject().toString()))
            {
                return node;
            }
        }
        return null;
    }

转载于:https://my.oschina.net/gamuzaer/blog/677906

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值