Java Swing JList配合JTree实现小小的联动

第一步给JList添加鼠标事件:jList1.addMouseListener(listMouseAdapter);

    MouseAdapter listMouseAdapter = new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
            if(jList1.getSelectedIndex() != -1) {
                if (e.getClickCount() == 1)
                {
                    oneClick(jList1.getSelectedValue());
                }
                if(e.getClickCount() == 2){
                    twoClick(jList1.getSelectedValue());
                }
                    
            }
        }
    };

    /**
     *  单击处理
     * @param value
     */
    private void oneClick(Object value)
    {
        expandSelect(jTree1, new TreePath(rootNode), true, value.toString());
    }
    
    /**
     * 双击处理
     * @param value
     */
    private void twoClick(Object value)
    {
        collapseAll(jTree1, new TreePath(rootNode), false, value.toString());
        jTree1.expandPath(new TreePath(rootNode));
    }


实现单击打开所选当前列表的在tree中的数据

实现双击关闭所选当前列表的在tree中的数据

    /**
     * 展开选择枝干
     * 
     * @param tree
     * @param parent
     * @param expand
     * @param str
     */
    private void expandSelect(JTree tree, TreePath parent, boolean expand, String str)
    {


        TreeNode node = (TreeNode) parent.getLastPathComponent();


        if (node.getChildCount() > 0)
        {


            for (Enumeration e = node.children(); e.hasMoreElements();)
            {


                    TreeNode n = (TreeNode) e.nextElement();


                    if(n.toString().equals(str)){
                        TreePath path = parent.pathByAddingChild(n);
                        expandSelect(tree, path, expand, str);
                    }
            }
        }


        if (expand)
        {
            tree.expandPath(parent);
        } else
        {
            tree.collapsePath(parent);
        }

    }


    /**
     * 关闭选择枝干
     * 
     * @param tree
     * @param parent
     * @param expand
     * @param str
     */
    private void collapseAll(JTree tree, TreePath parent, boolean expand, String str)
    {


        TreeNode node = (TreeNode) parent.getLastPathComponent();


        if (node.getChildCount() > 0)
        {


            for (Enumeration e = node.children(); e.hasMoreElements();)
            {


                    TreeNode n = (TreeNode) e.nextElement();


                    if(n.toString().equals(str)){
                        TreePath path = parent.pathByAddingChild(n);
                        parent.getPath();
                        collapseAll(tree, path, expand, str);
                    }
            }
        }


        if (expand)
        {
            tree.expandPath(parent);
        } else
        {
            tree.collapsePath(parent);
        }
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值