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);
                }
            }
            );
        }
    }
  • 相关阅读:
    SpringMVC 拦截器实现权限统一校验
    SpringMVC 全局异常处理
    Maven环境隔离应用场景
    Lombok入门
    父组件动态生成,子组件值进行渲染
    java实战
    Android studio 如何通过DB Navigator连接微软的SQL Server
    自定义的AutoComplTextView
    转 -- 用shape画内圆外方,形成一个圆形头像
    (记录问题)1.Canvas.drawArc()方法的问题
  • 原文地址:https://www.cnblogs.com/woniuzhongdetou/p/3639380.html
Copyright © 2011-2022 走看看