• JTree实例


    JTree实例

    private void createTreeByXdDdt() {
            DefaultComboBoxModel boxModel = (DefaultComboBoxModel) cmbXdDdt.getModel();
            XdDdt xdDdt = (XdDdt) boxModel.getSelectedItem(); // 得到选中的调度台对象;
            DefaultMutableTreeNode root = new DefaultMutableTreeNode(xdDdt);
            
            List<PLthDes> pLthDesList = getPLthDesListByLthid(xdDdt.getLth()); // 根据调度台获得p_lth_des对象集合
            for (PLthDes pLthDes : pLthDesList) {
                DefaultMutableTreeNode pLthDesNode = new DefaultMutableTreeNode(pLthDes);
                List<PThNode> pThNodes = getPThNodesByIds(pLthDes.getLthid(),pLthDes.getThid()); // 根据p_lth_des获得p_th_node对象集合
                for (PThNode pThNode : pThNodes) {
                    DefaultMutableTreeNode pThNodeTreeNode = new DefaultMutableTreeNode(pThNode);
                    pLthDesNode.add(pThNodeTreeNode);
                }
                root.add(pLthDesNode);
            }
            DefaultTreeModel treeModel = new DefaultTreeModel(root);
            treeModel.addTreeModelListener(new TreeModelListener() {
                @Override
                public void treeStructureChanged(TreeModelEvent e) {
                }
                @Override
                public void treeNodesRemoved(TreeModelEvent e) {
                }
                @Override
                public void treeNodesInserted(TreeModelEvent e) {
                }
                @Override
                public void treeNodesChanged(TreeModelEvent e) {
                    DefaultMutableTreeNode treeNode;
                    TreePath treePath = tree.getSelectionPath();
                    if(treePath!=null){
                        treeNode = (DefaultMutableTreeNode) treePath.getLastPathComponent();
                        Object userObject = treeNode.getUserObject();
                        System.out.println("TreeModelListener->"+userObject.getClass());
                    }else{
                        System.out.println("TreeModelListener->"+"treePath is null");
                    }
                }
            });
            tree.setModel(treeModel); // 设置树的model
            tree.setCellRenderer(new TreeRender()); // 设置树的渲染
            tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
            MouseListener[] mouseListeners = tree.getMouseListeners();
            System.out.println("mouseListeners:"+mouseListeners.length);
            tree.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    DefaultMutableTreeNode treeNode;
    //                TreePath treePath = tree.getPathForLocation(e.getX(), e.getY()); // 这样的话,第二次不选中就会是null
                    TreePath treePath = tree.getSelectionPath(); // 这样的话,第二次不选中也会触发事件;
                    if(treePath!=null){
                        treeNode = (DefaultMutableTreeNode) treePath.getLastPathComponent();
                        Object userObject = treeNode.getUserObject();
                        System.out.println("MouseClick->"+userObject.getClass());
                        if(userObject instanceof PLthDes){ 
                            PLthDes pLthDes = (PLthDes) userObject;
                            System.out.println("MouseClick->"+pLthDes.getLthid()+":"+pLthDes.getThid());
                        }
                    }else{
                        System.out.println("MouseClick->"+"treePath is null");
                    }
                }
            });
            MouseListener[] mouseListeners2 = tree.getMouseListeners();
            System.out.println("mouseListeners2:"+mouseListeners2.length);
            
            TreeSelectionListener[] listeners = tree.getTreeSelectionListeners();
            System.out.println("TreeSelectionListener:"+listeners.length);
            tree.addTreeSelectionListener(new TreeSelectionListener() {
                @Override
                public void valueChanged(TreeSelectionEvent e) {
                    DefaultMutableTreeNode treeNode;
                    TreePath treePath = tree.getSelectionPath();
                    if(treePath!=null){
                        treeNode = (DefaultMutableTreeNode) treePath.getLastPathComponent();
                        Object userObject = treeNode.getUserObject();
                        System.out.println("TreeSelectionListener->"+userObject.getClass());
                    }else{
                        System.out.println("TreeSelectionListener->"+"treePath is null");
                    }
                }
            });
            TreeSelectionListener[] listeners2 = tree.getTreeSelectionListeners();
            System.out.println("TreeSelectionListener2:"+listeners2.length);
            
        }
  • 相关阅读:
    Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法
    通过WifI开发调试Android设备
    js 什么是深拷贝问题?
    JavaScript 如何从引用类型(Array 、 Object)创建一个新的对象
    css ::selection 的妙用
    nodejs request gb2312乱码的问题
    echarts geo地图坐标转换为页面Offset坐标
    关于 Chrome Console 查看DOM详情细节的奇思淫巧
    ie11 下 input 默认有 X 关闭按钮的问题
    办公技巧:局域网内设置固定ip
  • 原文地址:https://www.cnblogs.com/stono/p/6232784.html
Copyright © 2020-2023  润新知