zoukankan      html  css  js  c++  java
  • JTree/DefaultMutableTreeNode 树形结构

     JTree/DefaultMutableTreeNode 2008-11-04 19:26:08
    //a simple tree
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.tree.*;
    public class Test
    {
        public static void main(String []args)
        {
            JFrame treeFrame=new TreeFrame();
            treeFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            treeFrame.setVisible(true);
    }
        }
    class TreeFrame extends JFrame
    {
        private static final int W=300;private static final int H=200;
        private JButton addBtn,delBtn;
        private DefaultTreeModel model;
        public TreeFrame()
        {
            setTitle("Tree");
            setSize(W,H);
            //创建树的数据模型
            //根结点
            DefaultMutableTreeNode root=new DefaultMutableTreeNode("山东科技大学");
            DefaultMutableTreeNode xinxi=new DefaultMutableTreeNode("信息工程系");
            //子结点
            root.add(xinxi);
            DefaultMutableTreeNode jsj=new DefaultMutableTreeNode("计算机06-1");
            xinxi.add(jsj);
            DefaultMutableTreeNode jingguan=new DefaultMutableTreeNode("经管系");
            root.add(jingguan);
            DefaultMutableTreeNode kuaiji=new DefaultMutableTreeNode("会计06-1");
            jingguan.add(kuaiji);
            //以树数据模型为参数创建一棵树
            model=new DefaultTreeModel(root);
            final JTree tree=new JTree(model);
            tree.setShowsRootHandles(true);
            tree.setRootVisible(false);
            tree.setEditable(true);
            //tree.putClientProperty("JTree.lineStyle", "None");
            this.getContentPane().add(new JScrollPane(tree));
            addBtn=new JButton("添加");
            addBtn.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e)
                {
                    DefaultMutableTreeNode select=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
                    if(select==null) return;
                    DefaultMutableTreeNode parent=(DefaultMutableTreeNode)select.getParent();
                    if(parent==null) return;
                    DefaultMutableTreeNode newNode=new DefaultMutableTreeNode("NewNode");
                    int selectedIndex=parent.getIndex(select);
                    model.insertNodeInto(newNode,parent,selectedIndex+1);
                    //展开路径
                    TreeNode[] treeNode=model.getPathToRoot(newNode);
                    TreePath treePath=new TreePath(treeNode);
                    tree.scrollPathToVisible(treePath);
                }    
            });
            this.getContentPane().add(addBtn,BorderLayout.WEST);
            delBtn=new JButton("删除");
            this.getContentPane().add(delBtn,BorderLayout.EAST);
            delBtn.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e)
                {
                    DefaultMutableTreeNode select=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
                    if(select!=null )
                        model.removeNodeFromParent(select);
                }
            }
            );
        }
    }
  • 相关阅读:
    ios上input的focus()、autofocus无效
    Object.assign()
    解决vue build后不兼容IOS11以下版本,并清理index缓存
    JavaScript常用方法
    mui-picker 增加过滤
    安装node-sass提示没有vendor目录的解决办法
    Base64编码
    object排序
    JSON数组去重
    vdom
  • 原文地址:https://www.cnblogs.com/woniuzhongdetou/p/3639380.html
Copyright © 2011-2022 走看看