zoukankan      html  css  js  c++  java
  • java树形目录展示

    package test;

    import java.awt.Component;
    import java.awt.Container;
    import java.util.ArrayList;
    import java.util.Enumeration;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeModel;
    import javax.swing.tree.TreePath;

    public class MyTree extends JFrame {
    private Container con;
    private JTree tree;
    private DefaultTreeModel treeModel;
    private Map<String,ArrayList<String>>map=new HashMap<String,ArrayList<String>>();

    public MyTree(String s,String root){
    super(s);
    con=getContentPane();
    DefaultMutableTreeNode rt=new DefaultMutableTreeNode(root);
    treeModel = new DefaultTreeModel(rt);
    //DefaultMutableTreeNode r1=new DefaultMutableTreeNode("book");
    //treeModel.insertNodeInto(r1, rt, rt.getChildCount());


    }

    private void ShowTree(){
    JTree tree = new JTree(treeModel);
    JScrollPane scrollpane=new JScrollPane(tree);
    con.add(scrollpane);
    setSize(400,400);
    setVisible(true);
    validate();
    setVisible(true); //设置可见
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    private void add(){
    DefaultMutableTreeNode root=(DefaultMutableTreeNode) treeModel.getRoot();
    String sf=root.toString();
    for(String Key:map.keySet()){
    if(sf.equals(Key)){
    continue;
    }
    else
    {
    addnode(root,Key);
    }
    }
    System.out.println("ok!");
    }
    private void init(){
    ArrayList<String>li=new ArrayList<String>();
    li.add("book");
    li.add("hotel");
    li.add("ride");

    map.put("travel", li);

    ArrayList<String>li1=new ArrayList<String>();
    li1.add("search");
    li1.add("social");
    map.put("book", li1);

    ArrayList<String>li2=new ArrayList<String>();
    li2.add("X");
    li2.add("Y");
    map.put("hotel", li2);
    System.out.println("mapsize"+map.size());


    ArrayList<String>li3=new ArrayList<String>();
    li3.add("X1");
    li3.add("Y1");
    map.put("X", li3);
    }
    private void addnode(DefaultMutableTreeNode n,String key){
    ArrayList<String>list=map.get(key);
    // DefaultMutableTreeNode root=(DefaultMutableTreeNode) treeModel.getRoot();
    Enumeration<?> enumeration=n.children();
    while(enumeration.hasMoreElements()){
    DefaultMutableTreeNode node1=(DefaultMutableTreeNode) enumeration.nextElement();
    String str=node1.toString();
    if(str.equals(key)){
    for(String s:list){
    DefaultMutableTreeNode r1=new DefaultMutableTreeNode(s);
    treeModel.insertNodeInto(r1,node1,node1.getChildCount());
    }
    }
    addnode(node1,key);
    }
    }


    private void addroot(){
    DefaultMutableTreeNode root=(DefaultMutableTreeNode) treeModel.getRoot();
    String sroot=root.toString();
    ArrayList<String>list=map.get(sroot);
    for(String sr:list){
    DefaultMutableTreeNode r1=new DefaultMutableTreeNode(sr);
    treeModel.insertNodeInto(r1,root,root.getChildCount());
    }

    }
    public static void main(String[] args) {
    MyTree tree=new MyTree("目录展示","travel");
    tree.init();
    tree.addroot();
    tree.add();
    tree.ShowTree();

    }

    }

  • 相关阅读:
    【转】Centos yum 换源
    centos7下使用yum安装mysql
    【转】简易smtp调用类
    【转】Beanstalkd 队列简易使用
    【转】mysql 拖库写库用法
    【转】scp 命令格式
    【转】mac os 安装php
    pip 国内源 gem 国内源
    【转】25个必须记住的SSH命令
    NHibernate 有好几种数据库查询方式
  • 原文地址:https://www.cnblogs.com/altlb/p/6255290.html
Copyright © 2011-2022 走看看